Javascript 如何获取当前加载的脚本名称和脚本的url变量?

Javascript 如何获取当前加载的脚本名称和脚本的url变量?,javascript,Javascript,我正在使用scriptembed标签加载一个脚本,我想在脚本中获取url变量和加载脚本名称。可能吗?比如说, <script src="test.js?id=12"></script> 在test.js内部,有没有办法获取url变量id 任何帮助都将不胜感激 谢谢, Karthik浏览评论上的链接,您可以得到正确的答案。 无论如何,为了让事情变得更简单: var allScripts=document.getElementsByTagName('script');

我正在使用scriptembed标签加载一个脚本,我想在脚本中获取url变量和加载脚本名称。可能吗?比如说,

<script src="test.js?id=12"></script>

在test.js内部,有没有办法获取url变量id

任何帮助都将不胜感激

谢谢,

Karthik

浏览评论上的链接,您可以得到正确的答案。 无论如何,为了让事情变得更简单:

var allScripts=document.getElementsByTagName('script');
var indexLastScript= allScripts.length -1;
alert (allScripts[indexLastScript].src);
这将以常规字符串的形式显示“test.js?id=12”,因此您可以将其拆分以获取de param


希望能有所帮助,我已经在Chrome Javascript控制台上试过了D.

浏览评论上的链接,您可以得到正确的答案。 无论如何,为了让事情变得更简单:

var allScripts=document.getElementsByTagName('script');
var indexLastScript= allScripts.length -1;
alert (allScripts[indexLastScript].src);
这将以常规字符串的形式显示“test.js?id=12”,因此您可以将其拆分以获取de param


希望能有所帮助,我已经在Chrome Javascript控制台上试过了D.

除了链接帖子中的答案外,只有你才能使用Firefox4(有警告);它将返回完整的url,包括参数。

除了链接帖子中的答案之外,只有您可以使用Firefox 4进行FWIW(需要注意);它将返回完整的url,包括参数。

如果要从当前url获取变量,可以使用以下命令:

function queryParser(url){
    this.get=function(p){return this.q[p];}
    this.q={};
    this.map=function(url){
        url=url || window.location.search.substring(1);
        var url=url.split('&');
        var part;
        for(var i=0;i<url.length;i++){
            part=url[i].split('=');
            this.q[part[0]]=part[1];
        }
    }
    this.map(url);
}
var query=new queryParser();
// assuming you have ?test=something
alert(query.get('test'));

如果要从当前URL获取变量,可以使用以下方法:

function queryParser(url){
    this.get=function(p){return this.q[p];}
    this.q={};
    this.map=function(url){
        url=url || window.location.search.substring(1);
        var url=url.split('&');
        var part;
        for(var i=0;i<url.length;i++){
            part=url[i].split('=');
            this.q[part[0]]=part[1];
        }
    }
    this.map(url);
}
var query=new queryParser();
// assuming you have ?test=something
alert(query.get('test'));


感谢您的努力,我通过在脚本标记中分配一个id属性并通过jQuery访问它来实现这一点

<script src="test.js?id=12" id="myScript"></script>

var currentScript = $("#myScript").attr('src'); //This will give me my script src

var currentScript=$(“#myScript”).attr('src')//这将给我我的脚本src
谢谢,
卡尔蒂克 感谢您的努力,我通过在脚本标记中分配一个id属性并通过jQuery访问它来实现这一点

<script src="test.js?id=12" id="myScript"></script>

var currentScript = $("#myScript").attr('src'); //This will give me my script src

var currentScript=$(“#myScript”).attr('src')//这将给我我的脚本src
谢谢,

Karthik

请参阅尼斯函数,但OP首先需要获取当前运行脚本的URL。请检查我答案的最后一段,然后检查第三段。然后转到OP并阅读他的第二个问题。是的,我读了这些,但是如何从脚本中获取
scriptURL
?@Marcel检查@alex和@ivo_es.Nice函数的答案,但是OP首先需要获取当前运行脚本的URL。检查我答案的最后一段,然后检查第三段。然后转到OP并阅读他的第二个问题。是的,我读了这些,但是如何从脚本中获取
scriptURL
?@Marcel检查@alex和@ivo_es的答案。我知道这个解决方案,但我的问题是我会将此脚本放在主机网站中,并基于id,它将从我的服务器而不是主机服务器加载一些数据。这就像加载一个小部件脚本。所以我不能保证主机会将我的脚本嵌入到哪个位置。有什么更好的主意吗?谢谢大家@Karthik:当脚本运行时,最后一个脚本元素将是当前正在运行的脚本(某些边缘情况除外)。我知道这个解决方案,但我的问题是我会将此脚本放在主机网站中,并基于id,它将从我的服务器而不是主机服务器加载一些数据。这就像加载一个小部件脚本。所以我不能保证主机会将我的脚本嵌入到哪个位置。有什么更好的主意吗?谢谢大家@Karthik:当脚本运行时,最后一个脚本元素将是当前正在运行的脚本(某些边缘情况除外)。