首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以使用javascript在两个本地html文件之间进行通信吗?

我可以使用javascript在两个本地html文件之间进行通信吗?
EN

Stack Overflow用户
提问于 2012-11-24 21:40:11
回答 1查看 7.1K关注 0票数 2

我在同一个文件夹中有两个本地.html文件。一个页面打开另一个页面的窗口,然后尝试在新打开的窗口中调用一个函数。然而,函数调用失败了,我在控制台中得到了这样的结果:

不安全的file:///***/A.html试图从具有URL file:///***/B.html.的帧访问框架域、协议和端口必须匹配。

这种情况发生在Chrome和Webkit (Mac)上。是否有任何方法可以:禁用对文件的跨域检查:// protocol,或者在不同的本地文件中调用javascript函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-24 23:21:56

您可以使用window.postMessage进行如下操作:

初始窗口html文件:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
    <head>
        <script>
            var otherWindow;
            function openOther() {
                otherWindow = window.open("other.html", "otherWindow");

            }

            function otherFunc() {
                otherWindow.postMessage("otherFunc", "*");
            }
        </script>
    </head>
    <body>
        <div onclick="openOther()">Open the other window</div>
        <div onclick="otherFunc()">Call the other window's function</div>
    </body>
</html>

第二个窗口的Html:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
    <head>
        <script>
            window.addEventListener("message", function(event) {
                alert("The other window's function executed.");
            }, false);
        </script>
    </head>
    <body>
        <div>This is the other window.</div>
    </body>
</html>

这里是window.postMessage的一个很好的参考。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13545883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档