我尝试使用postMessage函数将消息发布到我使用window.open打开的浏览器中,而我发现了一些文章解释如何执行此操作:
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进行测试。
感谢。