chrome插件的js中使用document.getElementById(‘save‘)获取不到元素
原因:如果你使用的是立即执行函数,则有可能就是页面还没加载完,就执行了js代码,所以获取不到Uncaught TypeError: Cannot set properties of null (setting ‘onclick’)
解决办法:
1.把js代码放到文档最后加载
至少放在需要获取的元素之后:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>使用Store</title>
<link rel="stylesheet" href="static/css/popup.css"></link>
</head>
<body class="main">
<h2>总金额:<span id="money">0</span></h2>
<div>
<span>请输入消费金额:</span><input type="text"> <button id="save">存储</button>
</div>
// 放文档最后
<script src="static/js/popup.js"></script>
</body>
</html>
2.使用defer属性
其实就是简单的利用defer属性,让浏览器读JS脚本的时候完全不等脚本开始读就开始读下面的图片啊,html代码了。然后让js脚本自己在那里慢慢读取完以后再执行。
给外链的js脚本添加defer=”true”,像下面这个这样就可以了:
还没有评论,来说两句吧...