可以说我有一个页面,这个代码就可以在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 –