我正在尝试
$(document).ready(function(){
var myIFrame = document.getElementById("myIframe");
var content = myIFrame.contentWindow.document.body.innerHTML;
alert(
content
);
})
但是我得到了拒绝访问权限错误,因为我在框架中加载的是Google。我甚至想做什么?该文档必须是外部文档(如Google)。我想循环遍历文档中的所有元素。我是JS和JQuery的新手,所以我可能会错过一个非常基本的东西。
答案 0 :(得分:4)
您不能因为同源策略而在所有常见浏览器中实施
两个IFRAME
页面的协议,主机,域和端口必须匹配(具有相同的来源)以允许javascript在它们之间进行通信。
如果您想在javascript中启用跨域通信,则需要与其他域进行一些合作。
现在,如果您计划阅读的内容不如google.com那么雄心勃勃,而其他域名已准备好与您沟通,那么这里有两种技巧:
parent.postMessage
中的IFRAME
并在主页面中有一个监听器来接收字符串消息。windows.name
或window.location.hash
传递字符串数据等技巧。但是使用这些技巧,您必须使用setInterval进行轮询以检查更改。 / LI>
醇>
答案 1 :(得分:2)
不,这称为跨站点脚本(XSS),并且因安全性而被禁用。
答案 2 :(得分:1)
尝试这样做:
$(document).ready(function(){
iframe = $('#myIframe');
alert($(iframe).contents());
});