有人可以更详细地解释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
似乎仍在运作。
答案 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