私は、同じページ内にアプレットとiframeを持っています。 iframeタグには、iframeページが変更されるたびにアプレットのメソッドを呼び出すonload属性があります。アプレットはiframeドキュメントの要素にアクセスし、ページ上のさまざまなタイプのタグの数を数えます。Javaアプレットはどのようにして同じページ内のiframeにアクセスできますか?
私はこのスクリプトはときに、ページが最初にロードを実行している場合、それは正常に動作しますインラインフレームに
Class c = Class.forName("com.sun.java.browser.plugin2.DOM");
Method m = c.getMethod("getDocument", new Class[]{java.applet.Applet.class});
Object obj = m.invoke(null, new Object[]{this});
HTMLDocument doc = (HTMLDocument)obj;
NodeList nodeList = document.getElementsByName("iframe");
if (nodeList.getLength()>0) {
Node node1 = nodeList.item(0);
if (node1 instanceof HTMLIFrameElement) {
Document doc = ((HTMLIFrameElement)node1).getContentDocument();
if (doc instanceof HTMLDocument) {
document = (HTMLDocument)doc;
if (document.hasChildNodes() {
// do some stuff
}
}
}
}
}
にアクセスし、アプレットに次のコードを、持っている - それは、IFRAMEのコードにアクセスし、それぞれにアクセスすることができますページ内の要素。
しかし、アプレットコードがiframeのonload属性から呼び出されると、アプレットはその文書を正しく読み取ることができません。私は正確に同じ文書に両方の時間にアクセスしていますので、私はonloadイベントを使用するときに、なぜそれができないの
netscape.javascript.JSException: No such property "hasChildNodes" on JavaScript object
:? これは、次の例外がスローされますか私はこれを回避する方法はありますか?
JavaSciptはiframeのDOMに別のサーバーとしてアクセスすることはできませんが、アプレットはこれを行うことができます。私が言う限りでは、iframeの内容を調べる方法は他にありません...そのため、ページをリロードするときにレンガの壁にぶつかったのはかなり迷惑です。 – claire
JavaがWebページを使って行うことは、基本的にJSの背後ではどのような場合でも処理されます。したがって、JSがそれを行えない場合、アプレットができれば私は驚くだろう。 –
これも私を困惑させましたが、アプレットは間違いなくiframeにアクセスできるはずです... – claire