hashListeningEnabled - 它到底是做什么的?

时间:2015-09-17 11:38:55

标签: jquery-mobile

有人可以更详细地解释jQuery Mobile启用/禁用时$.mobile.hashListeningEnabled的作用吗?

我已经尝试过调试源代码,但是有些代码我还不完全理解。文档有点抽象(https://api.jquerymobile.com/global-config/):

  

jQuery Mobile将自动侦听并处理location.hash的更改。禁用此功能将阻止jQuery Mobile处理哈希更改,这允许您自己处理哈希更改或在滚动到特定ID的文档中使用简单的深层链接。

我问的原因是因为我在带有<select data-native-menu="false">元素的iOS 9上遇到了问题。如果此列表太长,jQuery Mobile将创建一个全屏对话框。

但显示后它会直接关闭。我一直在环顾四周,注意到其他人有同样的问题:JQuery .popup("open") not working properly on iOS 9 device

建议的一个答案似乎对我有用 - 即将hashListeningEnabled设置为false:

$(document).on('mobileinit', function () {
    $.mobile.hashListeningEnabled = false;
});

但我不愿意将其推广到制作中,直到我明白它究竟是什么为止。

$.mobile.changePage似乎仍在运作。

1 个答案:

答案 0 :(得分:2)

您可以在一个html文件中包含多个页面。你可以去另一个页面&#34;即使该页面实际上是另一个具有data-role =&#34; page&#34;在里面。 http://demos.jquerymobile.com/1.4.5/pages-multi-page/

所以,如果你使用这种类型的导航,你就搞砸了。 Apple猜测有人可以使用hash进行XSS攻击。 /页的多页/的 #two

弹出窗口也在使用哈希:/ pages-multi-page / #&amp; ui-state = dialog