如何访问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);
}