|
发表于 2023-6-1 15:25:14
|
显示全部楼层
本楼为最佳答案
你的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代码被封装在一个会在页面加载完毕后才执行的函数中。 |
|