Javascript 未捕获类型错误:无法读取属性';查询选择器';空的
我正在Visual Studio 2015中使用Cordova应用程序。我添加了一个简单的按钮,可以将应用程序的背景颜色更改为红色。但它给出了上述错误 index.htmlJavascript 未捕获类型错误:无法读取属性';查询选择器';空的,javascript,visual-studio,cordova,Javascript,Visual Studio,Cordova,我正在Visual Studio 2015中使用Cordova应用程序。我添加了一个简单的按钮,可以将应用程序的背景颜色更改为红色。但它给出了上述错误 index.html <!DOCTYPE html> <html> <head> <!-- Customize the content security policy in the meta tag below as needed. Add 'unsafe-inline'
<!DOCTYPE html>
<html>
<head>
<!--
Customize the content security policy in the meta tag below as needed. Add 'unsafe-inline' to default-src to enable inline JavaScript.
For details, see http://go.microsoft.com/fwlink/?LinkID=617521
-->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>WeatherApp</title>
</head>
<body>
<p>Hello World</p>
<input type="button" name="color" value="Change Color" id="color" onclick="changeColor()">
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="scripts/platformOverrides.js"></script>
<script type="text/javascript" src="scripts/index.js"></script>
</body>
</html>
})()
您没有ID为devicerady
的div,因此您的parentElement
将为空
编辑:我认为您可以删除整个块,因为它属于创建新项目时的默认cordova页面布局:
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
var parentElement = document.getElementById('deviceready');
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
我认为dom尚未加载,您尝试进行选择,以便它返回空值。 尝试将这些线移到OnDevicerady()之外
我认为这不是DOM加载顺序的问题。看起来更像是从默认Cordova HTML索引页面中删除的搜索div,无需编辑JS代码。非常感谢。错误已删除,但按钮仍不工作。按钮未更改背景或主体的颜色
var parentElement = document.getElementById('deviceready');
var listeningElement = parentElement.querySelector('.listening');
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
var parentElement = document.getElementById('deviceready');
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');
var listeningElement = parentElement.querySelector('.listening');
var receivedElement = parentElement.querySelector('.received');
listeningElement.setAttribute('style', 'display:none;');
receivedElement.setAttribute('style', 'display:block;');