java小程序如何访问同一页面中的iframe
How can a java applet access an iframe within the same page?
我在同一页面中有一个小程序和一个iframe。iframe标记有一个onload属性,每当iframe页面更改时,该属性都会调用小程序中的一个方法。小程序需要访问iframe文档的元素,并计算页面上不同类型标记的数量。
我在小程序中有以下代码,它访问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属性调用小程序代码时,小程序无法正确读取文档。它抛出以下异常:
netscape.javascript.JSException: No such property "hasChildNodes" on JavaScript object
我两次都访问完全相同的文档,那么为什么当我使用onload时它会失败呢?我有什么办法绕过这件事吗?
- 图如何在JavaScript中实现
- 将其封装在JS函数中
- 从小程序调用函数
这样,至少可以更容易地分别调试JS和/或JS/applet交互。
JavaScipt无法访问iframe的DOM,因为它在单独的服务器上,但小程序可以。。。
我想安德鲁的想法是对的。JS可以使用JSONP访问其他服务器上的内容。
要与跨域iframe通信,您可能还需要研究Porthole之类的东西。
相关文章:
- 如何获取不属于我项目的上一页的URL
- 如何在Facebook上的iframe应用程序中使后退按钮返回到上一页
- 使用Booklet Jquery插件,我如何验证最后一页是否显示
- 如何在一页网站中使用PHP重定向到一个页面
- Javascript并不是显示在每一页上
- 如何在一页上显示多个Highcharts图表
- jQuery分页下一页和上一页按钮在点击零或超过最后一页后失败
- 如何为AngularJS制作智能表中第一页和最后一页的跳过按钮
- Bootstrap一页导航Fluid网站最小化问题
- 返回上一页时,Javascript仍处于活动状态
- 将jsp重定向到servlet,然后重定向到下一页
- 如何在重定向到asp.net中单击按钮的下一页之前应用javascript警报
- 传递表单值并移动到另一页
- 如何获取数组详细信息另一页
- 警报中的window.location必须重定向到上一页
- 使用 javascript 在 IFrame 中打印 PDF 文件,仅获取一页
- 将表单张贴到另一页上的iframe中
- 在iFrame中显示用户上一页
- Iframe下一页按钮SRC(非数组,实际SRC变化)
- 将iframe url传递到下一页