繁体   English   中英

如何从iframe调用主窗口中的函数?

[英]How to call function in main window from iframe?

首先,我知道这个问题与其他问题重复。 但是我试图从stackoverflow的许多问题中跟踪许多样本,但是没有用。 我无法从iframe调用主窗口的功能,但是如果我使用frame标签,那是可以的。

我尝试过这样。

主窗口:

<body>
<iframe src='test.html'></iframe>
<script>            
    var alertFunc = function(){
        window.alert("work!");
    }   
</script>
</body>

test.html

<body>
    <input type="button" onclick="window.parent.alertFunc();" value="Test" />
</body>

来自控制台的错误消息。

Unsafe JavaScript attempt to access frame with URL file:///C:/.../index.html from frame with URL file:///C:/.../test.html. Domains, protocols and ports must match.
 test.html:30
Uncaught TypeError: Cannot call method 'alertFunc' of undefined 

和许多与此类似的形式。

你有什么想法? 还是我做错了什么?

好像您是直接从文件系统访问文件一样,如c:..... \\ page.html。

由于相同的原始策略而导致的错误,如果您将站点部署在tomcat或任何其他Web服务器中(而不是从本地文件系统访问它),则假定两个文件都来自相同的域空间,它应该可以工作。

如果主页(带有iframe)和iframe页面位于同一目录中,或者如果iframe页面是主页目录的子目录,则它将在FireFox中工作。

上面的方法不适用于chrome,您需要以--allow-file-access-from-files 标志启动chrome

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM