Javascript 无法从html按钮访问js函数

Javascript 无法从html按钮访问js函数,javascript,parcel,Javascript,Parcel,我把包裹当作捆东西用。我试图通过单击按钮调用js函数,但它产生了一个错误 点击 //index.js文件 功能测试(){ 控制台日志(“测试”); } 我犯了这个错误 (索引):19未捕获引用错误:未定义测试 在HTMLButtonElement.onclick((索引):19)如果您的函数在加载事件处理程序中,它将失败 如果您使用 let test=..它只在定义的范围内已知 window.addEventListener(“加载”,函数(){ var test1=function(){

我把包裹当作捆东西用。我试图通过单击按钮调用js函数,但它产生了一个错误

点击
//index.js文件
功能测试(){
控制台日志(“测试”);
}
我犯了这个错误 (索引):19未捕获引用错误:未定义测试
在HTMLButtonElement.onclick((索引):19)

如果您的函数在加载事件处理程序中,它将失败

如果您使用

let test=..
它只在定义的范围内已知

window.addEventListener(“加载”,函数(){
var test1=function(){//按钮的内联处理程序不知道这一点
console.log(test.value)
}
})


单击
,如果加载事件处理程序中有函数,它将失败

如果您使用

let test=..
它只在定义的范围内已知

window.addEventListener(“加载”,函数(){
var test1=function(){//按钮的内联处理程序不知道这一点
console.log(test.value)
}
})

如果不执行,请单击

function test() {
  console.log("test");
}
是吗

test = function() {
  console.log("test");
}

它起作用了。我想,如果将函数声明为全局变量,那么它们将在内联HTML调用范围中可见,而不是执行

function test() {
  console.log("test");
}
是吗

test = function() {
  console.log("test");
}


它起作用了。我想,将函数声明为全局变量会使它们在内联HTML调用中可见。在按钮之前定义js范围

——或者更好地,添加一个加载事件处理程序,添加eventListener。同时查看“网络”选项卡,查看文件是否已在加载all@mplungjan不是必需的,在事件发生之前不会得到评估。嗯,在任何情况下,如果您在加载js文件之前单击,或者文件给出404,您确实有一个问题,其余的函数正在执行,这在index.jsbundler中,很可能将代码包装在一个iLife中,并且函数不在全局窗口范围内,这是
onclick
在按钮之前定义js所需的,或者更好,添加添加eventListener的加载事件处理程序。同时查看“网络”选项卡,查看文件是否已在加载all@mplungjan不是必需的,在事件发生之前不会得到评估。嗯,在任何情况下,如果您在加载js文件或文件给出404之前单击,您确实存在问题。其余的函数正在执行,这在index.jsbundler中,它很可能将代码包装在IIFE中,并且函数不在全局窗口范围内,这是
onclick