修復jQuery $的5種方法未找到瀏覽器功能
鑰匙要點
- jQuery $。瀏覽器功能由於其易受欺騙和虛假陳述而被貶低。鼓勵開發人員避免特定於瀏覽器的代碼,而是使用功能檢測來獲得更可靠的結果。 >缺少jQuery $的五個可能的解決方案。 Browser函數包括使用jQuery Migrate插件遷移jQuery,使用Modernizr進行功能檢測,使用新的$ .support用於功能和錯誤檢測,使用Javascript/Manual檢測或告知用戶關於不支持的函數。
- > jQuery遷移插件可以用作恢復較新版本的jQuery的折舊功能和行為的臨時解決方案。但是,建議將代碼更新為不再依賴於棄用的功能以進行長期兼容性。
- > 好的,現在正式宣布$ .BROWSER功能已被貶低。我們該怎麼辦?不要驚慌,我在下面有5種可能的解決方案供您執行作為您的酌處權。回購中的此github消息確實說明了一切:
“不再維護此存儲庫不活躍。如果需要$。瀏覽器,請使用jQuery遷移插件,請直接重寫代碼或usenavigator.useragent。
為什麼要刪除$。瀏覽器?>大多數開發人員開始看到錯誤出現時,他們在想“到底是什麼,為什麼$瀏覽器被刪除了?”。好吧,讓我解釋一些可能的原因。因為$ ..兄弟使用navigator.useragent來確定平台,所以它很容易被用戶欺騙或瀏覽器本身虛假陳述。總是最好避免在可能的情況下完全避免使用特定於瀏覽器的代碼。 $ .support屬性可用於檢測特定功能的支持,而不是依賴$ .browser。
可用標誌為:
> webkit(作為jQuery 1.4)
> safari(已棄用)
- > Opera
- > msie(請注意,IE8在兼容性視圖中聲稱為7) >
- > mozilla
- >解決方案1 - 遷移jQuery
- >使用jQuery遷移插件將jQuery的早期版本升級到jQuery 1.9.x。這是所有榮耀中遷移$ .BROWSER代碼:
>解決方案2 - 使用Modernizr 使用ModernIzr利用特徵檢測,HTML5/CSS3等…而不是基本的瀏覽器檢測。我認為Modernizr很棒!
jQuery<span>.uaMatch = function( ua ) { </span> ua <span>= ua.toLowerCase(); </span> <span>var match = <span>/<span>(chrome)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(webkit)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(opera)(?:.*version|)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(msie) (<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> ua<span>.indexOf("compatible") < 0 && <span>/<span>(mozilla)(?:.*? rv:(<span>[w.]</span>+)|)</span>/</span>.exec( ua ) || </span> <span>[]; </span> <span>return { </span> <span>browser: match[ 1 ] || "", </span> <span>version: match[ 2 ] || "0" </span> <span>}; </span><span>}; </span> <span>// Don't clobber any existing jQuery.browser in case it's different </span><span>if ( !jQuery.browser ) { </span> matched <span>= jQuery.uaMatch( navigator.userAgent ); </span> browser <span>= {}; </span> <span>if ( matched.browser ) { </span> browser<span>[ matched.browser ] = true; </span> browser<span>.version = matched.version; </span> <span>} </span> <span>// Chrome is Webkit, but Webkit is also Safari. </span> <span>if ( browser.chrome ) { </span> browser<span>.webkit = true; </span> <span>} else if ( browser.webkit ) { </span> browser<span>.safari = true; </span> <span>} </span> jQuery<span>.browser = browser; </span><span>} </span> <span>// Warn if the code tries to get jQuery.browser </span><span>migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" ); </span>
>解決方案3 - 使用jquery.support
>使用新的$ .support利用功能和錯誤檢測。 jQuery再次完成了所有艱苦的工作,並在瀏覽器上執行測試,並在jQuery.Support對像上存儲結果(默認情況下,每個頁面加載)。然後,我們可以簡單查詢此對像以確定是否可以使用功能。例如,要檢查不透明度支持,只需做到這一點:
>jQuery<span>.uaMatch = function( ua ) { </span> ua <span>= ua.toLowerCase(); </span> <span>var match = <span>/<span>(chrome)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(webkit)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(opera)(?:.*version|)<span>[ /]</span>(<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> <span><span>/<span>(msie) (<span>[w.]</span>+)</span>/</span>.exec( ua ) || </span> ua<span>.indexOf("compatible") < 0 && <span>/<span>(mozilla)(?:.*? rv:(<span>[w.]</span>+)|)</span>/</span>.exec( ua ) || </span> <span>[]; </span> <span>return { </span> <span>browser: match[ 1 ] || "", </span> <span>version: match[ 2 ] || "0" </span> <span>}; </span><span>}; </span> <span>// Don't clobber any existing jQuery.browser in case it's different </span><span>if ( !jQuery.browser ) { </span> matched <span>= jQuery.uaMatch( navigator.userAgent ); </span> browser <span>= {}; </span> <span>if ( matched.browser ) { </span> browser<span>[ matched.browser ] = true; </span> browser<span>.version = matched.version; </span> <span>} </span> <span>// Chrome is Webkit, but Webkit is also Safari. </span> <span>if ( browser.chrome ) { </span> browser<span>.webkit = true; </span> <span>} else if ( browser.webkit ) { </span> browser<span>.safari = true; </span> <span>} </span> jQuery<span>.browser = browser; </span><span>} </span> <span>// Warn if the code tries to get jQuery.browser </span><span>migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" ); </span>
>解決方案4 - 使用JavaScript/手動檢測
使用以下JavaScript代碼段來檢測瀏覽器和版本。 QuirksMode具有相當廣泛的JavaScript瀏覽器/設備檢測對象,可能被證明有用。>
<span>if (jQuery.support.opacity) </span><span>{ </span> <span>//opacity you may do... </span><span>} </span>
只需通知用戶,他們使用的jQuery版本不支持$ .BROWSER函數。可能不會推薦此解決方案,因為它無助於可用性,但可以用來阻止某些插件。我建議使用遷移插件的開發人員版本,該插件打開內容豐富的調試。
>來源:https://raw.github.com/house9/jquery-iframe-auto-height/master/master/release/jquere.iframe-auto-height.plugin.1.9.1.9.1.js 一如既往的評論,建議和改進。
<span>/* </span><span> Internet Explorer sniffer code to add class to body tag for IE version. </span><span> Can be removed if your using something like Modernizr. </span><span> */ </span> <span>var ie = (function () </span> <span>{ </span> <span>var undef, </span> v <span>= 3, </span> div <span>= document.createElement('div'), </span> all <span>= div.getElementsByTagName('i'); </span> <span>while ( </span> div<span>.innerHTML = '', </span> all<span>[0]); </span> <span>//append class to body for use with browser support </span> <span>if (v > 4) </span> <span>{ </span> <span>$('body').addClass('ie' + v); </span> <span>} </span> <span>}()); </span>
經常詢問有關jQuery瀏覽器函數的問題(常見問題解答)
> jQuery瀏覽器函數是什麼,為什麼不棄用? > jQuery瀏覽器函數是jQuery中的功能,它提供了有關用戶瀏覽器的信息。它用於檢測用戶使用的瀏覽器和版本。但是,此功能在JQuery版本1.3中被棄用,並在版本1.9中刪除。其貶值的原因是它鼓勵瀏覽器特定的代碼,這是違反了漸進式增強和優雅退化的原則。取而代之的是,鼓勵開發人員使用功能檢測,這是一種更可靠,更耐心的方法。> jQuery瀏覽器函數的棄用有什麼影響? jQuery瀏覽器函數意味著它不再在較新版本的jQuery中支持。如果您使用的是1.9或更高版本的jQuery版本,則任何依賴jQuery瀏覽器函數的代碼都無法正常工作。如果您依賴此功能,這可能會破壞您的網站或應用程序。
>>如果遇到與jQuery瀏覽器函數相關的錯誤,我該如何修復jQuery瀏覽器函數錯誤?最好的解決方案是將代碼更新到不再依賴此功能。而是使用功能檢測來確定用戶瀏覽器具有哪些功能。如果您無法更新代碼,則可以使用jQuery Migrate插件,該插件還原jQuery瀏覽器函數。
什麼是功能檢測,我該如何使用它代替jQuery瀏覽器函數?
功能檢測是Web開發中用於確定瀏覽器是否支持某個功能的技術。您沒有檢查瀏覽器和版本,而是檢查是否有特定功能。這是一種更可靠,更適合未來的方法。您可以使用ModernIzr庫進行功能檢測。
>什麼是jQuery Migrate插件,它如何幫助解決jQuery瀏覽器函數錯誤?
> > jQuery Migrate插件是幫助您的工具更新您的jQuery代碼以使用較新版本的jQuery。它恢復了貶低的功能和行為,因此較舊的代碼仍然可以與較新版本的jQuery一起使用。如果您不能再將代碼更新為不再依賴jQuery瀏覽器函數,則可以將jQuery遷移插件用作臨時解決方案。
如何使用jQuery遷移插件來修復jQuery瀏覽器函數錯誤?
>要使用jQuery Migrate插件,您需要將其包含在HTML文件中,包括jQuery。包含插件後,它將自動恢復jQuery瀏覽器函數和其他不棄用的功能。
>是否有jQuery瀏覽器函數的替代方法? jQuery瀏覽器功能。最受歡迎的替代方案之一是功能檢測,這是一種更可靠,更適合未來的方法。您可以使用ModernIzr庫進行功能檢測。另一種選擇是使用navigator.useragent屬性,儘管不建議這樣做,因為它可以很容易被欺騙。
>為什麼比瀏覽器檢測更優先?
特徵檢測比瀏覽器更喜歡檢測是因為它是一種更可靠,更適合未來的方法。瀏覽器檢測依賴於用戶代理字符串,可以輕鬆地欺騙或虛假陳述。另一方面,功能檢測檢查是否有特定功能,這是確定用戶瀏覽器功能的更準確的方法。如何更新我的代碼以使用功能檢測而不是jQuery瀏覽器函數? 要更新您的代碼以使用功能檢測,您需要使用特定功能的檢查來替換jQuery瀏覽器函數的任何實例。您可以使用ModernIzr庫來幫助解決此問題。例如,您可以檢查瀏覽器是否支持Internet Explorer獨有的特定功能。
>如果我在jQuery中遇到其他不棄用的功能,該怎麼辦?
,如果您在jQuery中遇到其他折衷的功能,最好的解決方案是將代碼更新到不再依賴這些功能的代碼。您可以將jQuery遷移插件用作臨時解決方案,但是建議更新代碼以進行長期兼容性。始終檢查jQuery文檔以獲取有關棄用功能及其替代方案的最新信息。
>以上是修復jQuery $的5種方法未找到瀏覽器功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
