可能是重复问题:
什么是我的脚本src URL?
我有一个情况:
<script
type="text/javascript"
src="http://server/some.js">
</script>
在文件some.js中,我需要知道同一文件some.js的完整路径,例如"http://server/some.js"。我该怎么做?
我不能更改HTML代码(客户端正在包含JS文件)。
可能是重复问题:
什么是我的脚本src URL?
我有一个情况:
<script
type="text/javascript"
src="http://server/some.js">
</script>
在文件some.js中,我需要知道同一文件some.js的完整路径,例如"http://server/some.js"。我该怎么做?
我不能更改HTML代码(客户端正在包含JS文件)。
试一下这个
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; }
}
var idx=0
,那么你将引入一个全局的idx变量(除非你之前用var
定义了idx
)。 - Russvar scripts= document.getElementsByTagName('script');
var mysrc= scripts[scripts.length-1].src;
这必须在脚本的主体中完成,而不是在稍后调用的代码中完成。最好在脚本开头执行,并记住变量,以便在必要时可以在后续函数调用中使用,且不会受到脚本后面插入任何新的<script>
节点的影响。
不确定在所有浏览器中是否有效,但可以尝试这样做:
function getScriptFileName() {
return (new Error).fileName;
}
Error
对象没有标准化,而且fileName
似乎只存在于Mozilla中。 - bobince