访问iframe中的元素

时间:2013-01-25 01:46:57

标签: javascript jquery

  

可能重复:
  Can javascript access iframe elements from the parent page?

我的文档中有一个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://somedomain.ru/somescript.php   http://domain.wia-games.net/。域,协议和端口必须匹配。

  

未捕获的TypeError:无法读取未定义的属性“长度”

我该如何解决这个问题?

UPD。 的console.log(BTN):

  

[prevObject:st.fn.st.init [0],context:document,selector:   “a [href * =”script.php“]”,jquery:“1.9.0”,构造函数:function ...]   context:#document length:0 prevObject:st.fn.st.init [0] selector:   “一个[HREF * =” script.php的 “]”    proto :对象[0]

2 个答案:

答案 0 :(得分:2)

出于安全原因,这是在浏览器上实施的约束:Same origin policy

存在安全的解决方法:

答案 1 :(得分:1)

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

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

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