我正在遵循这个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();
}
答案 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属性。