如何访问内部框架



如何访问iframe:

var iframe = document.getElementById('sitefield1');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var elem = innerDoc.getElementsByClassName("myclass")[0];

主页是test1.ru,iframe是test2.ru(都在我的电脑上)。在.htaccess中是

Header add Access-Control-Allow-Origin "http://test1.ru/2"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header add Access-Control-Expose-Headers "X-InlineCount"

有可能进入iframe模块吗?我是这个网站的所有者(做一些测试),也可以为我的firefox添加任何设置。我还发现这个代码在IE中不起作用(即使我在不同的域之间打开访问权限,XSS过滤器也被关闭)。Chrome看起来不再支持--禁用网络安全。。。Chrome的错误是阻止原点为"test1"的帧访问原点为"test2"的帧。协议、域和端口必须匹配

任何想法都将非常有助于做到这一点。

您不能直接跨原点访问帧。在现代浏览器中,您可以使用postMessage。

发送数据的帧需要调用postMessage

top.postMessage({ foo: "bar" }, "*");

接收数据的帧需要注册一个事件监听器来查找消息并对其做出反应。

window.addEventListener("message", receiveMessage, false);
function receiveMessage(evt) {
    alert(event.data.foo);
}

相关内容

  • 没有找到相关文章

最新更新