javascript - 回调 - ReferenceError : Variable is not defined

标签 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”没有定义。

坦率地说,我已经束手无策了。谁能告诉我我做错了什么?

最佳答案

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

另外,你好像是想给urlVars传递一个回调方法,但是你传递的是一个参数?从您提供的代码很难判断。

为什么不从您的选择框中获取您想要的参数,然后将它们发送到所需的方法?

关于javascript - 回调 - ReferenceError : Variable is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59453344/

相关文章:

javascript - 如何将事件处理程序回调传递给子组件?

javascript - 用 Javascript 除法

javascript - Processing.js 在 loadImage() 上将 "jpg"添加到 URL 末尾

javascript - 回调无法在 JavaScript Node 应用程序中进行同步行为

c++ - boost绑定(bind)回调函数指针作为参数

JavaScript 谜题 : Scope

powershell - 设置位置范围

javascript - 如何将 Requirejs-handlebars 与 Grunt-contrib-requirejs 优化器一起使用?

javascript - 有没有办法在 Javascript 中进行下一次迭代之前等待计算

javascript - 为多个脚本标签定义 JavaScript 函数