可以說我有一個頁面,這個代碼就可以在www.foo.com:可以從腳本中獲取從哪裏加載JavaScript庫的位置?
<script src="http://www.bar.com/script.js" />
我能寫代碼的script.js中,可以檢查它從bar.com服務?顯然document.location.href會給我foo.com。
謝謝!
可以說我有一個頁面,這個代碼就可以在www.foo.com:可以從腳本中獲取從哪裏加載JavaScript庫的位置?
<script src="http://www.bar.com/script.js" />
我能寫代碼的script.js中,可以檢查它從bar.com服務?顯然document.location.href會給我foo.com。
謝謝!
var scripts = document.getElementsByTagName("script");
給你 頁面中的所有腳本在此之後的集合,你可以閱讀他們的SRC屬性來找到你的目標(我希望你知道劇本是怎麼稱呼)
for (var i=0, limit=scripts.lenght; i< limit; i++) {
if (scripts[i].src.substr(<calculate your offset>) == scriptName) {
// Have you found your script, extract your data
}
}
這不會告訴如果script.js從www.bar.com被__served__,只是src是那個。它不考慮重定向。 –
儘管如此,假設這是一個很好的起點。如果您需要調查重定向,則可以使用xhttprequest進一步挖掘。 – Eineki
我想這可能是最好的答案,因爲我知道腳本名。看起來像我真正希望的那一點不適合客戶端,但這是一個很好的解決方法。 –
的只有找出一個非工人腳本的位置的方法是非標準error.fileName
,這是隻有Firefox和Opera支持:
var loc = (new Error).fileName;
如果腳本是一個工作線程(當然不是),那麼你可以使用location
對象。
如果它真的很重要,你可以解決它通過定義包含在每個腳本標籤前的腳本URL字符串:
<script type="text/javascript">SCRIPT_URL = "http://www.bar.com/script.js"</script>
<script src="http://www.bar.com/script.js" />
裏面的腳本文件,那麼你就可以訪問網址
alert("my URL is "+SCRIPT_URL);
不是太優雅,但應該工作。
你也可以,如果你有一個像PHP服務器端語言,不介意發送JS文件通過翻譯,JS文件中做這樣的事情(大性能警告!):
<script type="text/javascript">var my_url = "<? echo $_SERVER["REQUEST_URI"]; ?>"</script>
但這真的應該是最後的選擇。
是的。看到http://stackoverflow.com/questions/984510/what-is-my-script-src-url/984656#984656 –