Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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 跨域消息传递:当用户通过更改地址栏中的URL导航时,postMessage API不发送_Javascript_Google Chrome_Iframe_Postmessage - Fatal编程技术网

Javascript 跨域消息传递:当用户通过更改地址栏中的URL导航时,postMessage API不发送

Javascript 跨域消息传递:当用户通过更改地址栏中的URL导航时,postMessage API不发送,javascript,google-chrome,iframe,postmessage,Javascript,Google Chrome,Iframe,Postmessage,我正在尝试向“onBeforeUnload”事件的iframe发送window.postMessage。这是在会话结束时向iframe发送一些会话数据。iframe能够在其消息处理程序中成功接收消息。 这适用于所有类型的onBeforeUnload事件,例如重新加载页面、关闭页面、通过单击链接导航到差异页面 问题是,当用户在地址栏中键入不同的url并导航到差异页面时,会触发“onBeforeUnload”事件,但postMessage方法不会发送消息。这对我来说真的很奇怪。我在其他浏览器(saf

我正在尝试向“onBeforeUnload”事件的iframe发送window.postMessage。这是在会话结束时向iframe发送一些会话数据。iframe能够在其消息处理程序中成功接收消息。 这适用于所有类型的onBeforeUnload事件,例如重新加载页面、关闭页面、通过单击链接导航到差异页面

问题是,当用户在地址栏中键入不同的url并导航到差异页面时,会触发“onBeforeUnload”事件,但postMessage方法不会发送消息。这对我来说真的很奇怪。我在其他浏览器(safari、firefox、opera)中也尝试过同样的场景,效果如预期(当用户在地址栏中键入url时发送postMessage)

如果问题不清楚,我很乐意提供一个演示小提琴或屏幕截图


谢谢

jsfiddle可能有助于演示这个问题。为了更好地解释,我创建了一个plunkr。但当你下载代码并在本地运行时,你会更好地理解。你能在原始问题的plnkr中加入
html
javascript
?尚未检查文档?您是否尝试使用
历史记录
?plnkr具有这些文件。它有两个
html
文件,其中一个是
iframe
<代码>卸载前工作正常。它的
postMessage
未在该点发送。如果在卸载之前添加console.log,您将在控制台中看到打印。那么您所说的历史是什么意思呢?JSFIDLE可能有助于演示这个问题。但当你下载代码并在本地运行时,你会更好地理解。你能在原始问题的plnkr中加入
html
javascript
?尚未检查文档?您是否尝试使用
历史记录
?plnkr具有这些文件。它有两个
html
文件,其中一个是
iframe
<代码>卸载前工作正常。它的
postMessage
未在该点发送。如果在卸载之前添加console.log,您将在控制台中看到打印。你所说的历史是什么意思?