通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
Triggering an onload script (js or jQuery) when loading the page via the browser's "BACK" function
当通过浏览器的BACK按钮或键命令访问页面时,我找不到执行脚本的方法。(背景:我需要知道是否使用浏览器的BACK按钮或按键命令打开了页面。然后我可以检查存储的会话存储变量并触发一些适当的东西)。
例如,如果我把这个放进我的页面代码中
<script>
$(document).ready(function() {
alert("YES!");
/* in the real situation: do something */
})
</script>
,当我通过链接加载页面或通过在地址栏中键入URL直接打开页面时,将显示警报。
但当我通过BACK按钮进入该页面时,此警报将不会出现。
我用$(window).on("load", function() {...
和$(window).on("navigate", function () {...
做了同样的尝试——也没有成功。。。
编辑/添加:
我刚刚意识到浏览器在这方面的行为有所不同:Chrome、Opera、IE和Firefox Windows会正确地重新加载页面(并触发document.ready()
和onload()
事件),但Firefox Mac和Safari不会——它们从缓存加载整个页面,而不会触发document.ready()
或onload()
。(我还没有尝试过移动浏览器)
所以我搜索了避免缓存内容的解决方案,但到目前为止我所发现和尝试的(很多!)也没有奏效。。。
在阅读了大量的帖子并尝试了其中的解决方案并将问题缩小到浏览器问题后,我发现了这个答案,这迫使页面也在Safari(显然还有Firefox/Mac)中重新加载:
https://stackoverflow.com/a/13123626/5641669
从本质上讲,当通过Safari上的后退按钮到达页面时,这个jQuery代码会以原始状态重新加载页面,这也允许在页面加载上触发任何所需的脚本:
$(window).bind("pageshow", function(event) {
if (event.originalEvent.persisted) {
window.location.reload()
}
});
- 使用javascript函数在页面初始化后加载jquery
- 什么'这是加载jQuery的最佳方式
- 在WordPress站点中加载jquery.js后加载javascript代码
- 延迟加载jquery后替换$(document).ready(function)
- 如何使用onLoad加载jQuery JSON.从Zipcode On Form获取城市和州
- 对页面重新加载 Jquery 执行操作
- 在Ajax(过滤器)加载之后加载jQuery脚本
- 异步加载JQuery时Tabbed Box已损坏
- 加载Jquery时Chrome扩展出错
- 在更改事件上加载jQuery DataTable
- 手动加载JQuery而不触发内容安全策略
- 如果更改,请在ng之后重新加载Jquery
- 脚本似乎在加载jQuery之前运行-未定义Uncaught ReferenceError:$
- 在使用jquery之前动态加载jquery
- 如何重新加载jquery,以便它能为下一个进程工作
- Firefox没有't从ajax.googleapis.com加载jquery
- 我无法在自定义Wordpress主题中成功加载jQuery
- 正在从maphilight href加载Jquery选项卡
- 如何在完全加载html之后加载jquery代码段
- 在页面加载jQuery/Javascript时,按.class对表行进行排序