在jQuery Mobile 專案中,使用$.mobile.changepage 在頁面之間重定向時可能會遇到混亂。出乎意料的是,重新導向頁面的腳本無法執行,讓您一無所知。
要理解這種情況,掌握 jQuery Mobile 的頁面處理機制至關重要。它利用 AJAX 來載入後續頁面。雖然第一個頁面按常規加載,但後續頁面僅接收其 BODY 內容(具體來說,具有 data-role="page" 屬性的第一個 DIV),而 HEAD 內容將被忽略。
這表示腳本重新導向頁面的BODY內容中定義的內容將不會執行。原因是頁面轉換期間未載入包含必要庫的父 HEAD。
要解決此問題,請移動SCRIPT 標籤將重定向頁面新增至其BODY 內容:
儘管此解決方案有效,但它可能會因多個SCRIPT 標記而使HTML 變得混亂。
更好的方法是將所有JavaScript 邏輯集中在index.html 中,方法是將其包含在HEAD 中的單獨JS文件中:
雖然解決方案2 整合了腳本,但將它們包含在 index.html 中仍然至關重要。這主要是由於 Phonegap 的 bug 性質。如果發生錯誤,Phonegap 可能會刷新目前頁面,從而丟失其 DOM。刷新頁面的 HEAD 中不存在的任何 JavaScript 程式碼都不會執行。
透過將腳本集中在 index.html 中,必要的庫始終加載在 HEAD 中,即使在潛在的 Phonegap 錯誤之後也能確保功能不間斷.
以上是為什麼您的 JavaScript 腳本應該包含在 jQuery Mobile 專案的 index.html 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!