使用javascript检索IFrame内容

时间:2012-12-26 09:42:21

标签: javascript asp.net iframe

我已经从这个网站收到了javascript代码。

alert(window.frames['sc_frame'].document.getElementsByTagName('body')[0].innerHTML);

alert(window.frames['sc_frame'].document.getElementsByTagName('body')[0].innerText);

问题是我遇到了这个错误。

Unsafe JavaScript attempt to access frame with URL http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx from frame with URL http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Domains, protocols and ports must match.
(anonymous function)
InjectedScript._evaluateOn
InjectedScript._evaluateAndWrap
InjectedScript.evaluate
TypeError: Cannot call method 'getElementsByTagName' of undefined
arguments: Array[2]
get message: function () { [native code] }
get stack: function () { [native code] }
set message: function () { [native code] }
set stack: function () { [native code] }
type: "non_object_property_call"
__proto__: Error

我也了解原因,因为IFrame正在调用其他域名。

<iframe id="sc_frame" src="http://example1.com"></iframe>

我使用http://example.com中的上述代码。

我的问题是,是否有解决方法。使用javascript还是其他任何方法?

1 个答案:

答案 0 :(得分:0)

由于安全性限制,您无法跨域(/ ports / protocols)直接与正文中的其他元素通信。您不仅无法访问目标文档源,也无法访问对象和事件。

可以做什么,是使用框架通过代理跨域发送邮件。 This answer谈到这一点。