Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将消息发布到新打开的浏览器_Javascript_Asp.net Mvc_Addeventlistener_Postmessage - Fatal编程技术网

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

Javascript 将消息发布到新打开的浏览器,javascript,asp.net-mvc,addeventlistener,postmessage,Javascript,Asp.net Mvc,Addeventlistener,Postmessage,我正在尝试使用postMessage功能将一条消息发布到我使用window.open打开的浏览器中,我发现了几篇文章解释了如何执行此操作: 我就是不能让它工作 在我的网格中,双击一行时,我调用以下代码: var win = window.open('@Url.Action("Index", "StandaloneViewer")', '_blank', 'width=600,height=800,scrollbars=yes'); var domainOrigin = document.

我正在尝试使用postMessage功能将一条消息发布到我使用window.open打开的浏览器中,我发现了几篇文章解释了如何执行此操作:

我就是不能让它工作

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

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上进行测试


谢谢。

你能用一个警报什么的吗?我没有用调试器,而是用了调试器,但是什么也没出现。我通常在视图文件的底部有一个脚本:$(document).ready(函数(){alert(“我的消息”)});这不是我的问题。$(document).ready和$(window).on(“加载…”)按预期工作。问题是我的addEventListener没有捕获正在发送的消息,我不明白为什么。从提供的文章来看,这似乎相当直截了当,它清楚地表明window.open可用于返回已打开的对象,并简单地调用postMessage,该postMessage随后应在已打开的窗口中捕获,但它不是。