2013-08-20 30 views
0

此腳本由主機自動加載到我的網站類,所以我的問題是「如何改變它的src沒有這些事情與JavaScript?」。 我想讓src爲空,因爲它會減慢我的網站。這將是目標:更改腳本標籤的src沒有ID,姓名,或

<script type="text/javascript" src=""></script> 

甚至刪除整個腳本標記是可以接受的。

+4

這沒有幫助。當您的JS運行時,瀏覽器將已經下載並執行該腳本。 – SLaks

+0

爲什麼你不能在源代碼中刪除它?也就是說,它始終不會排出。 – harpo

回答

0
document.getElementsByTagName("script")[0].src = "location"; 

東陽document.getElementsByTagName("script")返回所有腳本標籤的數組,你可以選擇一個使用括號

+0

這假設'script'元素是頁面上第一個'script'元素。我們不知道它是否以及頁面結構是否可能改變。最重要的是,這不會阻止腳本加載,就像@Slaks評論的那樣。 –

0

它的索引號將其刪除:

var myScript = document.getElementsByTagName("script")[0]; // or whatever index 
myScript.parentNode.removeChild(myScript); // bye bye 

但SLaks可能是正確的saying

這沒有幫助。當您的JS運行時,瀏覽器將已經下載並執行該腳本。

+0

我想我們應該在刪除它之前檢查src。否則,如果方不再添加這個「.php」腳本,我們會刪除錯誤的。 –

+0

可能。 OP沒有詳細描述這個問題。 – 2013-08-20 02:56:56

+0

對不起,不夠詳細,這是我的第一篇文章。你還需要知道什麼? – user2698342

0

正如sLaks提到的,即使您更改腳本標記的src屬性也無濟於事。相反,我的建議是你的第一個腳本文件來存儲整個代碼只是確保你有一個像下面

var yourModule = (function(){ 
    function yourModule(){ 
     ... 
    } 
    //your helper functions here 
    function somehelper(){ 
     .... 
    } 
    yourModule.prototype.someFun1 = function(){ .. }; 
    yourModule.prototype.someFun2 = function(){ .. }; 
    return yourModule; 
}()); 

模塊模式只是爲了我把這個模式的例子。優點是如果你想禁用整個腳本,只是改變腳本不起作用使

var xyz= new yourModule(); 
// start using xyz 
// When you do not want yourModule anymore 
yourModule = function(){ return false; } or null; 

將清除該功能。

然後再次使用下面的代碼加載腳本

var handleRequest = function() { //!! set up the handleRequest callback 

if(this.status != undefined) { 

    /* do something with the status code here */ 

} 

if(this.readyState == 4) { 

     var script = document.createElement("script") ; 
      script.setAttribute("type","text/javascript") ; 
     var text = document.createTextNode(this.responseText) ; 
      script.appendChild(text) ; 

     var head = document.getElementsByTagName("head")[0] ; 
      head.insertBefore(script,head.firstChild) ; 

} 

} ; 

var request ; //!! supposing you have a way to get a working XHR Object 

//.. set the XHR Object 

request.open("GET",url,true) ; 
request.overrideMimeType("text/javascript") ; 
request.onreadystatechange = handleRequest ; 
request.send(null) ; 

腳本加載由不同的大師們不同的問題回答了很多次,這裏是解決方案,如果你想通過AJAX(加載它從我喜歡什麼:dynamically creating script: readyState never "complete"

相關問題