回调-ReferenceError:未定义变量

时间:2019-12-23 10:02:06

标签: javascript callback scope

我正在尝试从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” ist未定义。

坦率地说,我机智。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:-1)

您遇到的问题是,在为window.onload定义方法时,您传递的是脚本中任何地方都未定义的参数。

此外,似乎您想将回调方法传递给urlVars,但是您要传递参数?很难通过您提供的代码来区分。

为什么不从选择框中获取所需的参数,然后将其发送给所需的方法?