Javascript 检测脚本的位置,而不是从中调用脚本的页面

Javascript 检测脚本的位置,而不是从中调用脚本的页面,javascript,Javascript,我想知道我是否能找到脚本的位置,而不是调用它的页面。e、 g.如果页面是,并且我写location.href,我会得到该位置,而不是脚本所在的位置。是否可以获取脚本的位置 谢谢您的时间。您可以随时获取脚本标记本身并解析出src属性 var scripts = document.getElementsByTagName('script'); for(var i = 0; i < scripts.length; i++){ alert(scripts[i].src); } var

我想知道我是否能找到脚本的位置,而不是调用它的页面。e、 g.如果页面是,并且我写location.href,我会得到该位置,而不是脚本所在的位置。是否可以获取脚本的位置


谢谢您的时间。

您可以随时获取脚本标记本身并解析出src属性

var scripts = document.getElementsByTagName('script');
for(var i = 0; i < scripts.length; i++){
    alert(scripts[i].src); 
}
var scripts=document.getElementsByTagName('script');
对于(var i=0;i
简短回答:否


详细回答:您可以循环页面中的所有元素,计算每个元素的绝对URI,然后向您控制的服务器上的服务器端脚本发出JSON-p请求,该服务器端脚本将下载每个脚本并将其与主副本进行比较,但如果脚本以任何方式发生更改,则会中断。使用更智能的比较算法可能可以实现更机器人化的解决方案,但您永远无法获得100%的可靠性(因为可能包含同一脚本的两个副本,您无法区分)

我刚才也做了同样的事情,想出了一个稍微不同的解决方案,对我来说效果很好。您是否拥有引用脚本的页面?如果是这样,您可以在该脚本元素上放置一个id。然后在你的javascript文件中,你可以得到那个元素并解析它的域的“src”属性。

Dude,我从来没有想过要尝试这样做……好问题,你为什么要这样做?我试图允许用户直接链接到我的脚本(从任何第三方网站),它使用我网站的一些组件,这就是为什么我需要它,因为用户最终将能够下载脚本,并在不同的服务器上使用它。您是否试图确保所有资源都加载到您的脚本中?您可以随时让脚本调用YUI的get实用程序或jQuery的getScript,以确保加载内容。是的,但是您如何知道代码在哪个脚本中?我在每个页面上都有多个脚本(嗯……最近我把它们捆绑在一起了……),你不知道JavaScript是在哪个文件中定义的。是的,我得出了相同的结论。David的想法是抓取一个片段并对照代码回购进行检查,这将是你的最佳选择。