3
在我的項目中,我必須在頁面加載後動態加載JS和CSS文件。 通過使用下面的代碼,我可以添加和刪除js文件但刪除前一個添加新文件後,然後前面的文件不會顯示在標題中,但是當我運行代碼時,兩個js文件代碼都會執行。我不知道如何完全刪除文件,有些身體可以幫助我。 對於該代碼是。如何在jquery頁面加載後完全刪除和添加js文件?
在視圖頁面標題: -
<link rel="stylesheet" id="videoCss" />
<script id="videojs"></script>
的Jquery的動態加載JS和CSS文件: -
function addRemoveJsCssFile(filename, filetype)
{
var fileref='';
if (filetype == "js") { //if filename is a external JavaScript file
document.getElementById("videojs").remove();
fileref=document.createElement('script');
fileref.setAttribute("type", "text/javascript");
fileref.setAttribute("src", filename);
fileref.setAttribute("id", "videojs");
}
else if (filetype == "css") { //if filename is an external CSS file
document.getElementById("videoCss").remove();
fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
fileref.setAttribute("id", "videoCss");
}
if (typeof fileref != "undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
在這個函數中,我們必須通過文件位置和文件類型即css或js動態添加文件。謝謝。
你可以參考這個[鏈接](http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml)。它可以幫助! – RonyLoud
考慮到將「
您可以使用$ .getScript()動態加載js文件。
來源
2016-11-10 17:01:56 Sahil
我不知道如果我理解你的問題,但讓我試着解釋:
如果原始腳本是在頭部,它將被立即執行,因爲JavaScript是一種程序語言,所以在「稍後」放置的腳本中沒有任何事情可做:早些時候定義的腳本會在早些時候執行,所以當您調用函數時可能會遇到問題,停止videojs執行就太遲了。
另一方面,以前定義的腳本,你不能看到後面定義的腳本標籤..或更好的,你可以如果你推遲,但在延期的情況下,你會再次爭取同一問題,videojs腳本總是會被執行(總是太遲或太早,因爲你的語句執行或之前或之後沒有第三種方式)。
當然,你可以在剛剛設置一個全局對象之前加載一個腳本,它可以對videojs說:「停下來,不要繼續你的東西!」但顯然你應該編輯videojs代碼,用一個包裝器「if」來請求這個對象繼續進行許可,我認爲這不是你想要的迴應。
但問題是:在那個JavaScript videojs中執行了什麼,一個事件綁定器開始加載?或者在另一個事件?或者只是一系列被執行的語句 - 對於文字遊戲而言,後悔呢?
在第一種情況和第二種情況中,您可以執行以下操作:如果video.js在觸發事件時啓動,則可以停止該函數的執行,在該觸發器之前進行操作:必須刪除事件訂閱。要解除綁定事件,您必須知道第一個腳本是如何操作的,以及它爲了解綁定它所訂閱的事件。
這裏是如何的jQuery ready事件之前執行腳本(但它是有效的也是本地JavaScript事件,所以我認爲這可能是有益的):
running jQuery code before the dom is ready
這個答案甚至對每個文檔是非常有用的事件,不僅用於加載或「jQuery準備好」。
但是,即使它可以去除綁定「消失」每videojs腳本的影響,它不是一個乾淨的工作,因爲
因此,我建議您的目的是完全用這個來管理腳本的加載和卸載經理,不要硬編碼他們在HTML中。
PS:你有沒有聽說過require.js?
If not, take a look here
來源
2016-11-10 18:35:58 Sycraw
試試這個
來源
2016-11-27 21:58:56
好吧,我也試過這個。它追加了新的javaScript,但我也必須動態地刪除以前的腳本。 –