我想在另一个网页上调用javascript函数。到目前为止,我的解决方案是使用包含目标页面的iframe创建一个页面。
<a onclick="func1()">Call</a>
<script type="text/javascript">
function func1()
{
document.getElementById('myFrame').contentWindow.some_function();
}
</script>
<iframe id="myFrame" src="http://www.webpage.com">
问题是,此解决方案仅在两个页面具有相同域时才有效。否则,我收到此错误:
Uncaught SecurityError: Blocked a frame with origin "http://my_webpage.com" from accessing a frame with origin "http://not_my_webpage.com". Protocols, domains, and ports must match.
我用Google搜索了几个小时,但我发现我只需要使用
document.domain = document.domain;
使用后,我收到此错误:
Uncaught SecurityError: Blocked a frame with origin "http://my_webpage.com" from accessing a frame with origin "http://not_my_webpage.com". The frame requesting access set "document.domain" to "http://my_webpage.com", but the frame being accessed did not. Both must set "document.domain" to the same value to allow access.
我想我需要在两个页面上使用它,但iframe中的页面不是我的,我没有访问它。有任何想法吗?感谢名单。
答案 0 :(得分:2)
你无法做到。想象一下,如果这种事情是可能的......那将是一个巨大的安全漏洞。那是因为您无法访问具有其他来源的帧,浏览器会自动阻止尝试访问某个原点不同的窗口的每个脚本。