我有情况:
<script
type="text/javascript"
src="http://server/some.js">
</script>
在文件 some.js 中,我需要知道相同文件的完整路径 some.js ,eq。的 “http://server/some.js”即可。我怎么能这样做?
我无法更改HTML代码(客户端包含JS文件)。
答案 0 :(得分:9)
最简单的方法是查找要添加到文档中的最后一个脚本:
var scripts= document.getElementsByTagName('script');
var mysrc= scripts[scripts.length-1].src;
这必须在脚本的主体中完成,而不是在稍后调用的代码中完成。最好在脚本开头执行它并记住变量,以便在必要时可以在以后的函数调用中使用它,因此它不会受到脚本中稍后将任何新的<script>
节点插入文档的代码的影响。 / p>
答案 1 :(得分:7)
尝试一下
sc = document.getElementsByTagName("script");
for(idx = 0; idx < sc.length; idx++)
{
s = sc.item(idx);
if(s.src && s.src.match(/some\.js$/))
{ return s.src; }
}
答案 2 :(得分:0)
不确定它是否适用于所有浏览器,请尝试以下方法:
function getScriptFileName() {
return (new Error).fileName;
}