获取当前正在执行Javascript的URL

时间:2010-02-04 20:48:17

标签: javascript path

我正在尝试找到当前正在执行的javascript的网址。我知道我可以使用window.location.href作为当前页面,但这不一定是正在执行的脚本的路径。

非常感谢任何帮助。

感谢。

编辑1:我完全愿意使用插件等来实现这一目标。不要犹豫,不要提出任何建议。

编辑2:我需要这个,以便我可以找到从我当前正在执行的脚本所在位置到另一个资源的相对路径。问题是,例如,脚本在/js/myScript.js上运行,我需要引用的资源在/imgs/test.png。由于.js文件可以从任何地方包含,因此无法知道.png文件的路径。

4 个答案:

答案 0 :(得分:2)

试试这个,但我不能保证它可以在我的firefox中使用的所有浏览器中运行:

var scripts = document.getElementsByTagName("SCRIPT");
var script  = scripts[scripts.length-1].src;

var scriptName = script.match(/[^\\|^\/]+\.\w+\w?$/);
alert(scriptName);

将提醒脚本名称:

答案 1 :(得分:2)

基于~/ equivalent in javascript的类似问题,Kamarey的回答解决了我的问题。

Kamarey的回答:

  

使用base标记:

<head> 
   <base href="http://www.example.com/myapp/" /> 
</head> 
     

...

     

从现在开始在此页面上使用任何链接,没有   在javascript或html中的问题,将是   相对于基本标签,即   “http://www.example.com/myapp/”。

显然这不是我想要的,但它解决了我遇到的根本问题。通过指定基数,所有请求都是相对于基本规范进行的。

编辑:对于任何感兴趣的人来说,似乎jQuery方法getScript()不尊重Firefox 3.5.7中的基本位置。显然这可能不是jQuery中的实际错误,可能更像是一个Firefox问题,但值得注意。在IE8中,一切似乎都适当。我已经用jQuery提交了一张票,看看他们是否可以简化这种行为。您可以在http://dev.jquery.com/ticket/6034跟踪它。

答案 2 :(得分:0)

我认为你不能用JavaScript做到这一点。您需要一个JavaScript跟踪插件。

编辑: Firebug可以帮助您,IE8调试器(按F-12)也可以帮助您。

答案 3 :(得分:0)

您可以利用浏览器产生的错误并使用try / catch查找绝对文件位置。

我编写了一个简单的函数。你可以看到它here