首先,我知道这个问题与其他问题重复。但我试图在stackoverflow中跟踪许多问题的许多样本,但它不起作用。我无法从iframe调用主窗口的功能,但如果我使用帧标签它的工作。
我试过这样。
主窗口:
<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
许多形式与此相似。
你有什么想法吗?或者我做错了什么?
答案 0 :(得分:0)
看起来您正在直接从文件系统访问文件,如c:..... \ page.html。
由于same origin policy导致的错误,如果您在tomcat或任何其他Web服务器中部署站点而不是从本地文件系统访问它,它应该可以工作,假设这两个文件来自同一域空间。 / p>
如果主页面(使用iframe)和iframe页面位于同一目录中,或者iframe页面是主页面目录的子目录,则它将在FireFox中运行。
上述内容无法在您需要start chrome with the flag --allow-file-access-from-files