請有人更詳細地解釋什麼時候在jQuery Mobile中啓用/禁用$.mobile.hashListeningEnabled
的功能?hashListeningEnabled - 它究竟做了什麼?
我已經嘗試調試源代碼,但有一些代碼我不完全理解。和文檔是有點抽象(https://api.jquerymobile.com/global-config/):
jQuery Mobile的自動偵聽和處理更改的location.hash。禁用此功能將阻止jQuery Mobile處理哈希更改,這允許您自己處理它們或在文檔中使用滾動到特定標識的簡單深度鏈接。
我之所以問這個問題,是因爲我在iOS 9上遇到了問題,其中包含<select data-native-menu="false">
元素。如果這個列表太長,jQuery Mobile會創建一個全屏對話框。
但它顯示後直接關閉。我一直在環顧四周,發現其他人也有同樣的問題:JQuery .popup("open") not working properly on iOS 9 device。建議
一個答案似乎爲我工作確定 - 這是設置hashListeningEnabled
爲false:
$(document).on('mobileinit', function() {
$.mobile.hashListeningEnabled = false;
});
但我不舒服,直到我明白究竟它將此功能推廣到生產。
$.mobile.changePage
似乎仍然有效。
這是真棒 - 感謝!不知道你可以用哈希做XSS嗎? – keldar
我不確定Apple是否有意改變哈希行爲來防止XSS。問題是window.location.hash值在iOS 9.0 UIWebView中異步設置,這看起來更像是一個bug(請參閱:https://openradar.appspot.com/22186109),因爲在WkWebView中並非如此iOS 9.0 – DaveAlden
感謝您的澄清。我希望他們儘快解決這個可怕的錯誤! –