2015-01-13 25 views
0

我從網站加載腳本:如何獲取當前加載的腳本的src?

<script type='text/javascript' src='http://www.mybridge.com/scripts/init.js?IDL=1'></script> 

裏面加載這個init.js腳本我有:

var scripts = document.getElementsByTagName('script'); 
var myScript = scripts[scripts.length - 1]; 

但如果我嘗試在src看:

console.log("src is: "+myScript.src); 

它向我顯示了另一個腳本的鏈接,而不是當前(已加載/已處理)腳本的src。

我在哪裏錯了?我該怎麼做?

+0

有沒有當前腳本是文檔中最後一個腳本的原因是否存在? –

+0

「當前加載」是什麼意思?代碼在哪裏/何時運行? – SLaks

+0

我的意思是'運行腳本'(即我上面寫的代碼)。來自源腳本;我如何獲得源src腳本? – markzzz

回答

1

要獲取腳本的URL,您必須更多地瞭解您的腳本,因爲沒有理由您所需的腳本是HTML文檔中的最後一個腳本。

例如,如果你知道它的名字是"init.js"和你想要的IDL參數,你可以做

function getIDL(){ 
    var scripts = document.getElementsByTagName('script'); 
    for (var i=0; i<scripts.length; i++) { 
     var m = scripts[i].src.match(/\/init\.js\?IDL=(\d+)/); 
     if (m) { 
      return m[1]; // return the IDL 
     } 
    } 
    return null; 
} 
+0

就像一個魅力!謝謝老闆!它是否可以通過名稱/編號進行計算?或只是由src? – markzzz

+0

@markzzz腳本元素的名稱或文件的名稱? –

+0

腳本的名稱/編號 – markzzz

0

你也可以試試這個:

var scripts = document.getElementsByTagName('script'); 
console.log(scripts); 
var len = scripts.length; 
for(var i = 0 ; i < len ; i++){ 
    if(scripts[i].src.search('init') >= 0){ 
     console.log(scripts[i].src) ; 
    } 
} 

JSFIDDLE Demo

相關問題