Javascript 从浏览器访问页面时执行js函数';s后退按钮

Javascript 从浏览器访问页面时执行js函数';s后退按钮,javascript,jquery,jquery-mobile,mobile-safari,Javascript,Jquery,Jquery Mobile,Mobile Safari,我正在使用jquerymobile1.2.0和jquery1.7.2开发一个网站,我在加载页面时试图执行js函数时遇到了一个问题 正常情况下,用户使用链接(锚定)加载页面,因此我正在处理jquery移动事件“pageinit”,这很正常,但当用户使用浏览器的后退按钮访问页面时,我需要执行相同的代码/函数,在这种情况下,“pageinit”事件永远不会触发 javascript函数修改UI,以便在调用函数之前加载UI 我正在Safari 9.1(iOS 9.3)上测试它。 我的页面与此非常相似:

我正在使用jquerymobile1.2.0和jquery1.7.2开发一个网站,我在加载页面时试图执行js函数时遇到了一个问题

正常情况下,用户使用链接(锚定)加载页面,因此我正在处理jquery移动事件“pageinit”,这很正常,但当用户使用浏览器的后退按钮访问页面时,我需要执行相同的代码/函数,在这种情况下,“pageinit”事件永远不会触发

javascript函数修改UI,以便在调用函数之前加载UI

我正在Safari 9.1(iOS 9.3)上测试它。

我的页面与此非常相似:

<section id="someid" data-role="page" data-theme="a">
<!-- Page content -->
</section>

<script type="text/javascript">
function myFunction() {
//some code to modify de UI on page loaded
}

$("#someid").on("pageinit", function (e) {
    var page = $(this);

    myFunction();
});
</script>

函数myFunction(){
//在加载的页面上修改de UI的一些代码
}
$(“#someid”)。在(“pageinit”,函数(e)上{
变量页=$(此);
myFunction();
});
更新1:

我已经测试了jquery mobile列出的所有事件,但没有任何运气。

试试和事件

从文件中: 当会话历史记录条目被遍历到时,将触发pageshow事件。(这包括后退/前进以及onload事件后显示的初始页面。)

同样仅供参考,它看起来像是
pageinit
已被删除

最后,我发现这让我解决了这个问题,基本上是使用窗口事件“popstate”,下面是我使用的确切代码:

<section id="someid" data-role="page" data-theme="a">
<!-- Page content -->
</section>

<script type="text/javascript">
function myFunction() {
//some code to modify de UI on page loaded
}

$("#someid").on("pageinit", function (e) {
    var page = $(this);

    myFunction();
});

var myCustomEvent = (navigator.userAgent.match('iPhone') != null) ? 'popstate' : 'pageshow';

$(window).on(myCustomEvent, function(e) {
    myFunction();
}
</script>

函数myFunction(){
//在加载的页面上修改de UI的一些代码
}
$(“#someid”)。在(“pageinit”,函数(e)上{
变量页=$(此);
myFunction();
});
var myCustomEvent=(navigator.userAgent.match('iPhone')!=null)?'popstate':'pageshow';
$(窗口).on(myCustomEvent,函数(e){
myFunction();
}
注1:“pageshow”事件在大多数不同于Safari Mobile的浏览器中都得到了完美的评估,因此它正在检查这些情况


注2:我在Safari Mobile 9.1(iOS 9.3)上测试了这段代码.

我已经测试过这段代码,但在Safari for iOS上不起作用,在按下“后退”按钮后事件不会执行。似乎其他人也发生过类似的事情,看看这个问题:有一些解决方案,比如将空函数绑定到
卸载
或使用
持久化的
属性
<section id="someid" data-role="page" data-theme="a">
<!-- Page content -->
</section>

<script type="text/javascript">
function myFunction() {
//some code to modify de UI on page loaded
}

$("#someid").on("pageinit", function (e) {
    var page = $(this);

    myFunction();
});

var myCustomEvent = (navigator.userAgent.match('iPhone') != null) ? 'popstate' : 'pageshow';

$(window).on(myCustomEvent, function(e) {
    myFunction();
}
</script>