javascript - 使用 History-Back 功能时 Firefox 的行为变化
问题描述
我在 Firefox 上遇到问题。我们网站上有一些页面的加载时间为 2-3 秒。如果单击这些页面的链接,则会在页面正文中添加一个类,该类会更改布局。
我注意到,如果您使用 Firefox 中的历史记录返回按钮,则页面会在添加类时加载,但仍会添加到 body-tag 中。在 Chrome 中,布局就像是新加载的页面。
我确定 Firefox 曾经与 Chrome 具有相同的行为。但是重发这个缝就已经呗。我这里有一个微型脚本来说明问题:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script>
$( document ).ready(function() {
$('a.withWaitscreen').on({
click: function() { $("body").addClass("waiting");waitscreenCountdownInit(); }
});
$('button.withWaitscreen').on({
click: function() { $("body").addClass("waiting"); waitscreenCountdownInit(); }
});
$('form.withWaitscreen').on({
submit: function() { $("body").addClass("waiting"); waitscreenCountdownInit(); }
});
});
</script>
<style>
.waiting{
background-color: red;
}
</style>
<body >
</body>
<a class="withWaitscreen" href="https://www.google.com/">
test
</a>
</html>
如果您在 Firefox 中单击测试链接并单击浏览器中的“后退”按钮,页面将变为红色。如果您在 Chrome 中执行相同操作,则页面将为白色。
是什么导致了这种行为差异?这怎么可能改变?
解决方案
我通过将以下内容添加到文件的 JS-Part 解决了这个问题;
$( window ).unload(function() {
return "";
});
我不确定为什么会这样,但它具有预期的效果。(至少在 Firefox 62.0 中)
推荐阅读
- php - 在 laravel 中调用 null 上的成员函数 users()
- django - 使用 Axios 从前端访问 Django Rest API 时出现 Cors 错误
- c++ - 在 Windows 7 上检查另一个进程是否支持 DPI
- python - 如何确定一个实例方法对应的类?
- react-select - 多重选择器,将选中的选项放在输入元素下
- jmeter - 使用 chrome 扩展使用 Blazemeter 记录 websocket 对话
- mongodb - 如何将 AWS AppSync 连接到 MongoDB?
- python - 使用 GTK 在 GUI 中更新数据的功能建议
- c++ - a / b == ka / kb上没有浮点错误吗?
- angular - Lazy loading implementation