【发布时间】:2020-04-14 15:01:02
【问题描述】:
我正在尝试从 URL 中获取一些参数并将它们传递给另一个函数。
获取参数的函数是这样的:
function getUrlVars(callback) {
var urlVars = {};
var urlparts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
urlVars[key] = value;
});
callback(urlVars);
}
它可以很好地获取参数。应该将 urlVars 传递给的函数如下所示:
document.addEventListener('done', function() {
var projSelect = document.getElementById('projectSelection');
projSelect.value = urlVars[0];
});
});
};
我这样调用这两个函数:
window.onload=function(){
getUrlVars(selectBox(urlVars));}
所以我要做的就是根据 URL 中的参数设置选择框的值。但我收到一个错误,告诉我“urlVars”没有定义。
坦率地说,我已经束手无策了。谁能告诉我我做错了什么?
【问题讨论】:
-
var urlVars = {};在getUrlVars内。显然,您正在调用getUrlVars(selectBox(,其中selectBox参数是urlVars,这是未定义的,我认为这是脚本抱怨的地方,因为onLoad回调中的urlVars未定义并且不是隐式全局。 -
这不是
String.prototype.replace()的用途。 -
如果selectBox是回调函数,则不需要输入,window.onload=function(){getUrlVars(selectBox);}
标签: javascript callback scope