UWP App-JavaScript运行时错误:无法设置未定义或空引用的属性“ onclick”

时间:2018-09-12 05:08:15

标签: javascript uwp visual-studio-2017

我正在遵循这个Official MSDN tutorial来创建我的第一个UWP。但是,当我运行该应用程序时,它在main.js文件的onload()方法的第一行给了我以下错误:

  
    

JavaScript运行时错误:无法设置未定义或空引用的属性'onclick'

  

我正在VS2017的最新版本上使用UWP的latest构建17134(版本1803)。我怀疑MSDN是否会在不测试其代码的情况下发布该教程。因此,可能与构建版本和VS2017版本有关,因为我使用的是最新版本,并且该教程已经使用了一年多。

我尝试了解以下SO帖子,但并没有完全理解。也许因为我是UWP的新手,所以这个post和这个post问题:可能是什么原因导致错误以及如何解决?

Inded.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>WUP_TestSep2018</title>
    <link href="css/default.css" rel="stylesheet" />
</head>
<body>
    <div>Content goes here!
    <p>Click the button...</p>
    <button id="buttonID">Hello World</button>
    </div>
    <script src="js/main.js"></script>
</body>
</html>

main.js

window.onload = function () {
    document.getElementById("button").onclick = function (evt) {
        sayHello()
    }
}

function sayHello() {
    var messageDialog = new Windows.UI.Popups.MessageDialog("Hello, world!", "Alert");
    messageDialog.showAsync();
}

1 个答案:

答案 0 :(得分:0)

在index.html中,您通过id为“ buttonId”声明一个按钮:

<button id="buttonId">Hello world</button>

但是在您的JavaScript中,您尝试通过以下方式进行检索

document.getElementById("button").onclick = function...

如果您尝试

会发生什么?
document.getElementById("buttonId").onclick = function...

基本上,原始代码中发生的事情是document.getElementById()函数返回undefined,因为不存在这样的id。然后,您尝试设置未定义的onclick属性。