0

可能重复:
javascript 可以从父页面访问 iframe 元素吗?

我的文档中有一个 iframe,我想使用 JQuery 获取(并更改)其中的一些属性。这是代码:

var iframe = $('iframe');

        $("#id").click(function() {
            var btn = iframe.contents().find('a[href*="script.php"]'); 
            alert(btn);
            for (var i=0, attrs=btn.attributes, l=attrs.length; i<l; i++){
                alert(attrs.item(i).nodeName);
            }
         });

第一个警报说“[object Object]”,然后我收到错误:

不安全的 JavaScript 尝试 从 URL http://domain.wia-games.net/的框架访问具有 URL http://somedomain.ru/somescript.php的框架 。域、协议和端口必须匹配。

未捕获的类型错误:无法读取未定义的属性“长度”

我应该如何解决问题?

UPD。控制台日志(btn):

[prevObject: st.fn.st.init[0], context: document, selector: "a[href*="script.php"]", jquery: "1.9.0", constructor: function...] context: #文档长度:0 prevObject:st.fn.st.init[0] 选择器:“a[href*="script.php"]” proto:Object[0]

4

2 回答 2

2

这是出于安全原因在浏览器上实施的约束:同源策略

存在安全的解决方法:

于 2013-01-25T01:50:54.977 回答
1

大多数浏览器作为安全功能禁止跨站点脚本: http ://en.wikipedia.org/wiki/Cross-site_scripting

这意味着两个对象必须具有相同的源域。

作为一种解决方法,您可能希望在服务器端查询外部页面(例如使用 php)

于 2013-01-25T01:53:42.797 回答