<script src="myscript.js?someParameter=123"></script>
从myscript.js
开始,有没有办法获得someParameter
设置为123
?或者是使用服务器端脚本生成带有参数的javascript文件的唯一方法吗?
答案 0 :(得分:2)
好吧,您可以从window.location.href
获取网址参数。顾名思义,它指的是当前窗口。 <script>
标记用于将链接文件嵌入到当前文档中,从而进入同一窗口。如果您从链接的JavaScript文件中解析window.location.href
,则只能从嵌入文档中获取URL。
有两种方法可以将参数传递给另一个JavaScript文件:
window
实例。答案 1 :(得分:1)
Jquery地址这样做,所以我一直在检查他们的代码,这是我刚刚创建的改进的解决方案:
$.each($('script'), function(id, val){ //loop trough all script-elements
var tmp_src = String($(this).attr('src'));//store the src-attr
var qs_index = tmp_src.indexOf('?');//check if src has a querystring and get the index
//Check if the script is the script we are looking for and if it has QS-params
if(tmp_src.indexOf('myscript.js') >= 0 && qs_index >= 0)
{
//this is myscript.js and has a querystring
//we want an array of param-pairs: var1 = value1, var2 = value2, ...
var params_raw = tmp_src.substr(qs_index + 1).split('&');
//create empty options array
var options = [];
//loop troug raw params
$.each(params_raw, function(id, param_pair){
//split names from values
var pp_raw = param_pair.split('=');
//store in options array
options[pp_raw[0]] = pp_raw[1];
});
//check the results out in the console!
console.log(options);
}
});
我希望这能满足您的需求吗?