JavaScript-如何检索src="脚本内容中的url

JavaScript - how to retrieve the src="" url from the script contents?

本文关键字:脚本 quot url 何检索 检索 src JavaScript-      更新时间:2023-09-26

可能重复:
JavaScript查询字符串

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

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

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

本页描述了获取这些值的方法:

<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]; }
          }
       }
    }

解析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编码等方面更健壮。