我正在開發Dnn模塊,我在一些模塊中使用jQuery,我將jQuery引用添加到每個ascx文件的頂部,方式是當用戶將多個模塊添加到每次引用的頁面時當添加模塊時,這種情況會給出一些錯誤,當我從模塊的引用中移除,這是另一個模塊的底部,它們都使用jQuery,它們工作良好,有沒有辦法阻止多重引用jQuery?我的意思是,如果它在頁面引用befeore它不會再引用。謝謝。防止jQuery多重參考
3
A
回答
6
你可以做小的腳本,以檢查是否jQuery是出現在頁面上,且僅當不存在,加載它:
// 'load-jquery.js'
window.onload = function() {
if (window.jQuery === undefined) {
var script = document.createElement('script');
script.src = 'path/to/jquery.min.js';
document.getElementsByTagName('head')[0].appendChild(script); // load jQuery
}
};
2
如果你是在高衝突環境中加載了jQuery,試試命名空間jQuery。
SOMETHING = {
jQuery: jQuery,
$: $
}
然後通過SOMETHING $或SOMETHING.jQuery調用jQuery。只要記得在你想要的jQuery版本加載後立即執行命名空間,否則你最終會得到錯誤的結果。如果你有權訪問jQuery文件,最簡單的方法是在文件末尾附加名稱空間代碼。
3
如果你使用DNN 5.x,你應該使用DNN核心的jQuery版本,通過調用DotNetNuke.Framework.jQuery.RequestRegistration()
。
如果您只處理自己模塊中的衝突,則可以在代碼中添加腳本,然後檢查它是否已被添加。我們手動將jQuery添加到頭文件中(創建一個通用的HTML控件,並將其添加到Page.Header.Controls
),然後致電Page.ClientScript.RegisterClientScriptBlock()
創建一個腳本塊以調用jQuery.noConflict
(以便它不會干擾DNN的JavaScript內容)。然後,您可以將整個調用包裝爲在調用Page.ClientScript.IsClientScriptBlockRegistered()
時添加jQuery,以便只添加一次。
相關問題
- 1. c#結構參考以防止複製
- 2. 防止訪問處置的參考
- 3. 防止多重評分
- 4. jQuery - 防止太多遞歸
- 5. 多次防止jQuery着火
- 6. jQuery的防止多選擇在多選
- 7. 終止符參考
- 8. 防止與jQuery
- 9. JavaScript + jQuery參考
- 10. 防止重複jquery選項卡
- 11. 如何防止我的jQuery庫重疊?
- 12. jQuery Mobile的防止瀏覽器重裝
- 13. 如何防止重複發送ajax jQuery?
- 14. 防止多重圖像選擇使用jQuery imgAreaSelect
- 15. 多參考
- 16. 防止多線程重複記錄
- 17. 防止活動的多重實例化
- 18. 如何在Android中防止多重Dex
- 19. mod_rewrite的 - 防止多重定向
- 20. C++多重繼承防止鑽石
- 21. 防止網頁上的多重滾動
- 22. 如何防止mod_rewrite多次重寫URL?
- 23. jQuery的防止多個AJAX調用
- 24. jquery防止插件的多個實例
- 25. JQuery - 防止觸發多個事件
- 26. 如何防止jquery追加多次
- 27. 防止jQuery post請求觸發多次
- 28. 防止jquery被多次引用?
- 29. 防止返回值參考的拷貝構造和賦值
- 30. 內部參考可以防止垃圾收集