java小程序如何访问同一页面中的iframe?
我在同一页中有一个applet和一个iframe。iframe标记有一个onload属性,每当iframe页面更改时,该属性都会调用applet中的方法。小程序需要访问iframe文档的元素,并计算页面上不同类型标记的数量 我在访问iframe的applet中有以下代码java小程序如何访问同一页面中的iframe?,java,javascript,iframe,applet,Java,Javascript,Iframe,Applet,我在同一页中有一个applet和一个iframe。iframe标记有一个onload属性,每当iframe页面更改时,该属性都会调用applet中的方法。小程序需要访问iframe文档的元素,并计算页面上不同类型标记的数量 我在访问iframe的applet中有以下代码 Class c = Class.forName("com.sun.java.browser.plugin2.DOM"); Method m = c.getMethod("getDocument", new Class[]{jav
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属性调用applet代码时,applet无法正确读取文档。
它引发以下异常:
netscape.javascript.JSException: No such property "hasChildNodes" on JavaScript object
我两次都在访问完全相同的文档,那么为什么在使用onload时它会失败呢?我有什么办法可以绕开这件事吗
JavaScipt无法访问iframe的DOM,因为它位于单独的服务器上,但小程序可以 我认为安德鲁的想法是对的。JS可以访问其他服务器上的内容
要与跨域iframe进行通信,您可能还需要研究类似的内容。JavaScipt无法访问iframe的DOM,因为它位于单独的服务器上,但小程序可以,这就是我这样做的原因。据我所知,没有其他方法可以找到iframe的内容。。。这就是为什么我在重新加载页面时遇到了麻烦,这让人非常恼火!Java对网页所做的一切基本上都是由JS在幕后处理的。因此,如果JS不能做到这一点,我会对小程序能做到感到惊讶。这也让我感到困惑-但小程序肯定可以访问iframe,即使它不应该。。。