【发布时间】:2019-08-24 11:10:27
【问题描述】:
我遇到了 javascript 问题,因为 chrome v73.0.3683.86,每当我在 window.location.reload() 函数之后运行我的 javascript 代码时,它总是给我错误“Unchecked runtime.lastError: The message port在收到回复之前关闭。”
我在互联网上搜索了很多主题,但大部分都是关于 chrome 扩展的。所以我尝试在 cognito 模式下运行此代码并禁用所有扩展,但没有任何变化。
※由于某种原因我需要在 window.location.reload() 之后运行一些东西
像这样的onClick javascript函数
<html>
<head>
<title>Hello world!</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript">
function buttonClick() {
window.location.reload();
document.title = "Hi there";
}
</script>
</head>
<body>
<div>TODO write content</div>
<button onclick="buttonClick()">Click here</button>
</body>
</html>
【问题讨论】:
-
For some reason I need to run something after window.location.reload()- 好吧,你的整个设计有缺陷。重新加载页面后,之后的代码就无关紧要了 -
哦,惊喜! @JaromandaX 我和你的想法完全一样,然后在我的本地主机上尝试 location.reload();navigator.sendBeacon('foo') ,在我的服务器日志上我可以清楚地看到请求已执行。实际上,即使
location.reload(); localStorage.executesAfter="true";也可以。 -
@OP,您在运行问题中的代码 sn-p 时是否看到此消息? macOS 上的 73.0.3683.86 在这里,我什么都没有。
-
@Kaiido - 是的,这行得通......但这不是OP想要做的,他想在卸载页面后更改页面标题?
-
谢谢大家,但我正在寻找关于“在收到响应之前关闭消息端口”的解释@Jaromanda:是的,设计不好,虽然在 chrome 版本 73 之前它运行良好:(