马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>小甲鱼Web开发教程概览</title>
</head>
<body>
<script type="text/javascript" defer>
var urlParams = new URLSearchParams(window.location.search);
var cid = urlParams.get('cid');
document.getElementById('main').innerHTML = "<h1>" + cid + "</h1>";
</script>
<div id="main"> <!--主页面-->
</div>
</body>
</html>
截图:
你的JavaScript代码试图在页面加载时修改 div 元素的 innerHTML ,但是在你的 script 元素中,你并未等待你的HTML元素被完全加载。当JavaScript试图通过 document.getElementById('main') 获取元素时,这个元素可能还没有被浏览器加载完全,所以返回的是 null 。在你试图更改这个 null 的 innerHTML 时,将会出现错误。
你可以把这段JavaScript代码放在 body 的末尾,或者把它放在一个会在所有HTML元素都加载完毕后执行的函数里,比如 window.onload 或 DOMContentLoaded 事件的监听器中。这样可以确保在执行这段JavaScript代码时HTML元素已经被完全加载了。
以下是一个修正后的代码示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>小甲鱼Web开发教程概览</title>
</head>
<body>
<div id="main"> <!--主页面-->
</div>
<script type="text/javascript">
window.onload = function() {
var urlParams = new URLSearchParams(window.location.search);
var cid = urlParams.get('cid');
document.getElementById('main').innerHTML = "<h1>" + cid + "</h1>";
}
</script>
</body>
</html>
在这个修改后的版本中,JavaScript代码被封装在一个会在页面加载完毕后才执行的函数中。
|