在index.html页面中,我有以下代码
<body>
<h1>First page</h1>
<button id="submitBtn">Submit</button>
<script src="script.js"></script>
</body>
JS是一个简单的脚本,可以将页面重定向到另一个页面-second.html
document.getElementById('submitBtn').addEventListener('click', function(e) {
e.preventDefault();
window.location.href = 'another_file.html';
})
加载第二个页面后,控制台会给出-类型错误:无法读取null的属性(读取"addEventListener"(。这是可以理解的,因为下一页没有子界面Btn。
如何避免此错误?
感谢
您可以在将事件附加到它之前检查它是否存在。
var elem = document.getElementById('submitBtn');
elem && elem.addEventListener('click', function(e) {
e.preventDefault();
window.location.href = 'another_file.html';
})
至于你的设计决策,我认为它的结构方式确实对所有函数使用了script.js
,唯一的区别是页面之间的差异,页面本身有一个最小的<script>
标签来初始化和满足自己的内容。
因此,对于这个例子,虽然两者共享相同的script.js
,但只有index.html
页面会在其中包含这段代码。second.html
根本不应该检查该元素。
您在"another_file.html"?
<script src="script.js"></script>
因为如果你这样做,这就是问题的根源。