将消息发布到新打开的浏览器

时间:2018-04-19 10:45:11

标签: javascript asp.net-mvc addeventlistener postmessage

我尝试使用postMessage函数将消息发布到我使用window.open打开的浏览器中,而我发现了一些文章解释如何执行此操作:

Window.postMessage()

HTML5’s window.postMessage API

我无法让它发挥作用。

在我的网格中,当双击一行时,我调用以下代码:

var win = window.open('@Url.Action("Index", "StandaloneViewer")', '_blank', 
'width=600,height=800,scrollbars=yes');

var domainOrigin = document.location.origin;
var message = 'My Message';
win.postMessage(message, domainOrigin);

在我的Index.cshtml中,我得到了以下内容:

$(document).ready(function () {
    window.addEventListener('message', function (event) {
        debugger;
        var domainOrigin = document.origin;
        var domainPath = document.location.href;
        if (event.origin !== domainOrigin) return;
        ...
    }, false);
});

我还在加载事件中尝试了相同的代码:

$(window).on("load", function () {
    window.addEventListener('message', function (event) {
        debugger;
        var domainOrigin = document.origin;
        var domainPath = document.location.href;
        if (event.origin !== domainOrigin) return;
        ...
    }, false);
});

但无济于事!我可能会缺少什么想法?在向iframe发送消息时,我有同样的情况正常工作,但我有一个用例,我需要启动一个单独的浏览器并向其发送消息。

我目前正在使用最新版本的Chrome进行测试。

感谢。

0 个答案:

没有答案