簡體   English   中英

動態加載和卸載JavaScript

[英]load and unload javascript dynamically

我想添加一個腳本

 if(screensize>980){
  add <script src="somejs">// functions should work without time delay
}
if(screensize<980){
 remove  <script src="somejs">
}

當屏幕尺寸小於900時,並且當用戶將屏幕尺寸調整為更大尺寸時,我想刪除相同的腳本。 然后再次返回,根據屏幕大小動態刪除和添加腳本。 腳本相關的函數應該可以正常工作,沒有任何問題(動態地),並且沒有延遲和重新加載。 可能嗎。 我嘗試了很多事情,但沒有任何效果。

$.ajax, document.createElement("script") -我嘗試了這兩個,但是我希望它可以動態刪除和添加。

例如:添加和刪除<script src="somescript"> 是否有可能動態注釋和取消注釋已加載的腳本?

刪除和添加似乎很麻煩。 您不能簡單地在腳本開頭添加對當前屏幕尺寸的檢查,如果不適合參數則中止檢查嗎?

當屏幕尺寸小於900時,我想添加一個腳本;當用戶將屏幕尺寸調整為更大時,我想刪除相同的腳本。 然后再次返回,根據屏幕大小動態刪除和添加腳本。

為什么不將Event Listener附加到屏幕上以注意屏幕尺寸的變化:

window.addEventListener("resize",addOrRemoveFunction,false);

然后編寫一個函數,該函數確定屏幕尺寸的寬度,並相應地向myElement添加或刪除Event Listener

function addOrRemoveFunction() {

    if (window.innerWidth < 900) {
        myElement.addEventListener("click",myFunction,false);
    }

    else if (window.innerWidth > 899) {
        myElement.removeEventListener("click",myFunction,false);
    }
}

然后,您可以根據當前屏幕寬度編寫任何您希望具有或不存在的功能:

function myFunction() {

[Javascript here]

}

jQuery的$.getScript("your script location")會完成一半的工作。 另一方面,我對此表示懷疑。 但是,如果您將腳本結構化為模塊化,則可以模仿它。 如下所示的內容可能會起作用(未測試):

var baseScript;
var scripts = {};

(function (module) {
    var _field = ...;
    var _privateFunction = function() {...};
    module.property = ...
    module.publicFunction = function () {...};
})(scripts.largeScreenScript);

(function (module) {
    ...
})(scripts.smallScreenScript);

if(screensize>980){
    baseScript = scripts.largeScreenScript;
}
if(screensize<980){
    baseScript = scripts.smallScreenScript;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM