我正在使用包裹作为捆扎机。我试图通过按钮单击来调用js函数,但会产生错误。
<button onclick="test()">Click</button>
<script src="./js/index.js"></script>
// index.js file
function test() {
console.log("test");
}
我收到此错误 (索引):19未捕获的ReferenceError:未定义测试 在HTMLButtonElement.onclick((index):19)
答案 0 :(得分:0)
如果您的函数位于加载事件处理程序中,它将失败
如果您使用
进行定义 let test = ....
仅在定义的范围内是已知的
window.addEventListener("load", function() {
var test1 = function() { // this will not be known to the button's inline handler
console.log(test.value)
}
})
<input type="text" name="test" id="test" />
<button class="test" onclick="test1()">Click</button>
如果您重命名下面的函数以进行测试,则该函数将失败,并且未定义,因为它被页面中的ID或名称之一遮盖了
function test1() {
console.log(test.value)
}
<input type="text" name="test" id="test" />
<button class="test" onclick="test1()">Click</button>
解决方案:
function test() {
alert("Yes")
}
window.addEventListener("load",function() {
document.getElementById("but").addEventListener("click",test);
})
<button id="but">Click</button>
答案 1 :(得分:0)
如果不这样做
function test() {
console.log("test");
}
你做
test = function() {
console.log("test");
}
或
test = () => {
console.log("test");
}
有效。我想将函数声明为全局变量会使它们在内联HTML调用范围内可见
答案 2 :(得分:-1)
将Task "Exec"
"/root/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/1.0.0-alpha-27919-02/tools/ilc" @"obj/Release/netcoreapp2.2/linux-x64/native/HelloWorld.ilc.rsp"
Killed
1:7>/root/.nuget/packages/microsoft.dotnet.ilcompiler/1.0.0-alpha-27919-02/build/Microsoft.NETCore.Native.targets(249,5): error MSB3073: The command ""/root/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/1.0.0-alpha-27919-02/tools/ilc" @"obj/Release/netcoreapp2.2/linux-x64/native/HelloWorld.ilc.rsp"" exited with code 137. [/home/app/HelloWorld.fsproj]
Done executing task "Exec" -- FAILED.
1:7>Done building target "IlcCompile" in project "HelloWorld.fsproj" -- FAILED.
1:7>Done Building Project "/home/app/HelloWorld.fsproj" (Publish target(s)) -- FAILED.
添加到您的index.js文件
工作示例here