JavaScript - 如何从脚本内容中检索 src="" url? [复制]

Posted

技术标签:

【中文标题】JavaScript - 如何从脚本内容中检索 src="" url? [复制]【英文标题】:JavaScript - how to retrieve the src="" url from the script contents? [duplicate] 【发布时间】:2012-12-31 02:55:06 【问题描述】:

可能重复:javascript query string

我想访问附加到我的脚本 url 的查询变量。比如:

<script type="text/javascript" src="http://mysite.com/app.js?var1=value1&var2=value2"></script>

在 app.js 中,如何访问 var1 和 var2 值?

【问题讨论】:

我不认为这是完全重复的。提供的可能重复项只是询问如何在 javascript 中操作查询字符串——这个问题是特定于脚本标签的。 【参考方案1】:

This page describes a method 获取这些值:

<script type="text/javascript"
        src="scriptaculous.js?load=effects,builder"></script>

还有 javascript:

function getJSvars(script_name, var_name, if_empty) 
    var script_elements = document.getElementsByTagName(‘script’);

    if(if_empty == null) 
        var if_empty = ”;
    

    for (a = 0; a < script_elements.length; a++) 
       var source_string = script_elements[a].src;
           if(source_string.indexOf(script_name)>=0) 

           var_name = var_name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
           var regex_string = new RegExp("[\\?&]"+var_name+"=([^&#]*)");
           var parsed_vars = regex_string.exec(source_string);
           if(parsed_vars == null)  return if_empty; 
           else  return parsed_vars[1]; 

          
       
    

【讨论】:

选择了这个答案,因为它是一个自包含的函数,很容易插入:)【参考方案2】:

解析src属性,大致如下:

var src=document.getELementById("script-id").getAttribute("src");
var query=src.substring(src.indexOf("?"));
var query_vals=query.split("&");
var queries=;
for (var i=0;i<query_vals.length;i++) 
  var name_val=query_vals.split("=");
  queries[name_val[0]]=name_val[1];

console.log(queries.var1, queries.var2);

但是,有一些库,例如 url.js,可以更好地执行此操作,并且在 URL 编码等方面更加健壮。

【讨论】:

以上是关于JavaScript - 如何从脚本内容中检索 src="" url? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从脚本中检索 Javascript 变量以在 R 中使用它

Angularjs:Javascript函数中没有指令内容

从 websocket 检索到的触发 javascript

使用 Javascript 从加载的 iframe 中检索 HTTP 状态代码

Javascript:如何从网页中检索文本

如何从 POST 请求中检索 cookie?