Javascript 跨域消息传递:当用户通过更改地址栏中的URL导航时,postMessage API不发送
我正在尝试向“onBeforeUnload”事件的iframe发送window.postMessage。这是在会话结束时向iframe发送一些会话数据。iframe能够在其消息处理程序中成功接收消息。 这适用于所有类型的onBeforeUnload事件,例如重新加载页面、关闭页面、通过单击链接导航到差异页面 问题是,当用户在地址栏中键入不同的url并导航到差异页面时,会触发“onBeforeUnload”事件,但postMessage方法不会发送消息。这对我来说真的很奇怪。我在其他浏览器(safari、firefox、opera)中也尝试过同样的场景,效果如预期(当用户在地址栏中键入url时发送postMessage) 如果问题不清楚,我很乐意提供一个演示小提琴或屏幕截图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
谢谢jsfiddle可能有助于演示这个问题。为了更好地解释,我创建了一个plunkr。但当你下载代码并在本地运行时,你会更好地理解。你能在原始问题的plnkr中加入
html
,javascript
?尚未检查文档?您是否尝试使用历史记录
?plnkr具有这些文件。它有两个html
文件,其中一个是iframe
<代码>卸载前工作正常。它的postMessage
未在该点发送。如果在卸载之前添加console.log,您将在控制台中看到打印。那么您所说的历史是什么意思呢?JSFIDLE可能有助于演示这个问题。但当你下载代码并在本地运行时,你会更好地理解。你能在原始问题的plnkr中加入html
,javascript
?尚未检查文档?您是否尝试使用历史记录
?plnkr具有这些文件。它有两个html
文件,其中一个是iframe
<代码>卸载前工作正常。它的postMessage
未在该点发送。如果在卸载之前添加console.log,您将在控制台中看到打印。你所说的历史是什么意思?