Applet i html (DOM)

0

Opiszę mój problem takim schematem:
A------------------
| B------------- |
| | C------ | |
| | | | | |
| | -------- | |
| --------------- |

Na schemacie pokazane są:
A - dokument html
B - applet java umieszczony w tym dokumencie
C - dokument html umieszczony w applecie

Pytania są następujące:

  1. Jakiego obiektu powinienem użyć, by umieścić w aplecie(B) plik html(C) obsługujący wszystkie standardy (CSS, javascript, DOM, sektory DIV itd.)?

  2. W jaki sposób mogę przy pomocy systemu DOM wydawać apletowi(B) polecenia przy pomocy javascriptu(z pliku A) już po skonstruowaniu?

  3. Jak nawiązać komunikację między skryptami javascript dokumentu wewnętrznego(C), a appletem(B)?

0

Taki pomysł to zły pomysł. Java obsługuje html w wersji 3.2 zatem nie masz dostępu do wielu elementów HTML. Co zaś tyczy się samej komunikacji:
http://www.codeproject.com/jscript/javatojs.asp

0

Wiem, że to zły pomysł, ale nic nie poradzę na to, że część artykułów na stronę zrobioną w postaci apletu inni przygotowują w wordzie, publiszerze lub innych edytorach.
Muszę jakoś umieścić możliwość dodawania takich stron.

0

To nie rób w ten sposób, tylko niech aplet łączy się ze skryptem na serwerze, z którego będziesz brał same "gołe" treści z formatowaniem tekstu, oraz informację które skrypty uruchomić. Poza tym warto zastanowić się czy nie było by lepszym rozwiązaniem przekazane "redaktorom" edytora WISWIG na stronie. Na przykład FCK. Mniej problemów będzie niż z importem formatowania z doców itp do jakiegoś znośnego xmla.

0

Wporządku, trochę zmieniłem mój projekt, więc zrobię tak jak mówisz. Na stronie umieszczę sekcję div zajmującą cały ekran i funkcją inerhtml javascriptu bedę aktualizował stronę, tyle, że nie chce mi działać ten skrypt, co mi napisałeś

Co zaś tyczy się samej komunikacji:
http://www.codeproject.com/jscript/javatojs.asp
Może źle coś robię, napisz mi jak mam go użyć, na razie w skrypcie zrobiłem coś takiego:

<HTML>
  <head>
	<script>
		function redy(){
			document.getElementById("d1").innerHTML= "OK";
		}
	</script>
  </head> 
  <body>
	
	<table border="1">
		<tr><td>
			<div id="d1">NIE</div>
		</td></tr>
		<tr><td>
			<applet code=LogwMainApplet.class width=100 height=70>
		</td></tr>
	</table>
	
   </body>
</HTML>

a w aplecie tak:


import java.awt.Label;
import javax.swing.JApplet;
import netscape.javascript.JSObject;



public class LogwMainApplet extends JApplet{

    public LogwMainApplet() {
        add(new Label("WCZYTANE"));
        
        
    }
    
    public void init(){
        super.init();
        
            JSObject js = JSObject.getWindow(this);
            js.call("redy", null);
        
    }
     
}

i mi program zacyna działać, a potem pojawia się wyjątek:

netscape.javascript.JSException
at netscape.javascript.JSObject.getWindow(Unknown Source)
at LogwMainApplet.<init>(LogwMainApplet.java:18)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

O co chodzi?

0

Spróbuj zamiast
"<applet code="LogwMainApplet.class" width="100" height="70">"

użyć:

"<applet code=LogwMainApplet.class width=100 height=70 MAYSCRIPT>"

0

Zamiast <script> daj <script type="text/javascript">

1 użytkowników online, w tym zalogowanych: 0, gości: 1