小编Too*_*ate的帖子

获取执行JavaScript文件的URL(主要是IE6-7问题)

嘿所有,我一直在尝试将一个通用函数放在一起,检索网页上正在执行的JavaScript文件的绝对URL:

http://gist.github.com/433486

基本上你可以这样打电话:

getScriptName(function(url) {
    console.log(url);
    // http://www.example.com/myExternalJsFile.js
});
Run Code Online (Sandbox Code Playgroud)

在页面上的外部JavaScript文件中,然后可以对其执行某些操作(例如,查找<script>加载它的标记).

它几乎在我测试过的所有浏览器中都很棒(至少Firefox,Chrome,Safari,Opera v10和IE 8).

但是,它似乎在IE 6和7中失败.回调函数被执行,但检索到的名称是主HTML页面的URL,而不是JavaScript文件.继续该示例,getScriptName使用参数调用回调:http://www.example.com/index.html

所以我真正想问的是,是否有其他方法可以获取当前JavaScript文件的URL(可能是IE 6和7特定的hackery)?提前致谢!

编辑:此外,这不适用于所有情况,所以请不要推荐它:

var scripts = document.getElementsByTagName("script");
return scripts[scripts.length-1].src;
Run Code Online (Sandbox Code Playgroud)

我希望它适用于动态创建的脚本标记(可能不会放在页面的最后),也就是延迟加载.

html javascript internet-explorer cross-browser absolute

19
推荐指数
1
解决办法
961
查看次数