&引用;导航栏中的页面反复初始化“;或;在Jquery Mobile中基于TabBar的应用程序中的每个导航上重新初始化页面";-铬

&引用;导航栏中的页面反复初始化“;或;在Jquery Mobile中基于TabBar的应用程序中的每个导航上重新初始化页面";-铬,jquery,html,jquery-mobile,Jquery,Html,Jquery Mobile,我有以下标记(在第一个选项卡中)- 在Tab1.html、Tab2.html、Tab3.html和Tab4.html的标题中,每当我导航到我不希望出现的相应选项卡页面时,就会调用脚本,即标记中的整个标题 这是Google Chrome浏览器中的一个已知问题/功能吗?Safari-也构建在Webkit上,其行为不同。明确删除rel=“external”&data ajax=“false”但是,它们阻止了页面兑现 然后你需要像这样打开兑现: $(document).one("mobileinit",

我有以下标记(在第一个选项卡中)-

在Tab1.html、Tab2.html、Tab3.html和Tab4.html的标题中,每当我导航到我不希望出现的相应选项卡页面时,就会调用脚本,即标记中的整个标题


这是Google Chrome浏览器中的一个已知问题/功能吗?Safari-也构建在Webkit上,其行为不同。

明确删除rel=“external”&data ajax=“false”但是,它们阻止了页面兑现

然后你需要像这样打开兑现:

$(document).one("mobileinit", function () {
    $.mobile.page.prototype.options.domCache = true;
});
pageContainerElement.page({ domCache: true });
<a href="prefetchThisPage.html" data-prefetch> ... </a>
如果希望每页都兑现,请仅使用此选项。如果您只想兑现某些页面,请使用以下类比:

<div data-role="page" id="cacheMe" data-dom-cache="true">
如果在多个html-s中有多个页面,则需要使用如下数据预取属性:

$(document).one("mobileinit", function () {
    $.mobile.page.prototype.options.domCache = true;
});
pageContainerElement.page({ domCache: true });
<a href="prefetchThisPage.html" data-prefetch> ... </a>

在这里,您可以找到我关于这种兑现的另一个答案:

现在谈谈持久对象。如果您遵循了上面的说明,您可以简单地创建一个如下所示的持久对象:

$(document).one("mobileinit", function () {
    $.mobile.page.prototype.options.domCache = true;
});
pageContainerElement.page({ domCache: true });
<a href="prefetchThisPage.html" data-prefetch> ... </a>
var someObject={ 选项1:“”, 选择2:0, 选项3:“”//等。。 }


rel=“external”&data ajax=“false”在jQM情况下会阻止对象持久化,这些属性就像页面刷新一样。

谢谢@Gajotres!我分别尝试了$.mobile.page.prototype.option.domCache=true和数据预取两种方法,在Safari中都可以正常工作,但在Chrome中,我遇到了相同的错误——“错误加载页面”。。在我将rel=“external”&data ajax=“false”属性放在标记中之前,Chrome甚至不会导航。是的,如果我将同一文件中所有.html文件的标记放在页面标记下,并将href=“#tabPageId”放在导航栏的标记中,那么在Safari和Chrome中都可以正常工作。