[英]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.