我已经从这个网站收到了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还是其他任何方法?
答案 0 :(得分:0)
由于安全性限制,您无法跨域(/ ports / protocols)直接与正文中的其他元素通信。您不仅无法访问目标文档源,也无法访问对象和事件。
可以做什么,是使用框架通过代理跨域发送邮件。 This answer谈到这一点。