浏览器出现Cannot set property 'onclick' of null的问题

Part1:

当js文件放在head里面时,如果绑定了onclick事件,就会出现这样的错误,

是因为W3School的写法是浏览器先加载完按钮节点才执行的js,所以当浏览器自顶向下解析时,找不到onclick绑定的按钮节点,于是报错。

【1】因此,需要把js文件放在底部加载,就会避免该问题。

【2】在js代码外包一个window.onload = function(){} 即可解决问题

 代码如下:[注]:这里的代码只作为演示代码

 1 <script>
 2             window.onload = function(){
 3                 var mainSlider  = document.getElementsByClassName("mian-slider")[0];
 4                 var aaa = mainSlider.children[0];
 5                 var ul = mainSlider.children[1];
 6                 var arrow = mainSlider.lastChild || mainSlider.lastElementChild;
 7                 var imgWidth  = mainSlider.offsetWidth;
 8
 9
10
11
12
13
14             }
15         </script>
16         <div class="main-slider">
17             <a id="aaa">
18                 <img src="images/slide.jpg" >
19                 <img src="images/slide1.jpg" >
20                 <img src="images/slide2.jpg" >
21                 <img src="images/slide3.jpg" >
22                 <img src="images/slide4.jpg" >
23                 <img src="images/slide5.jpg" >
24             </a>
25             <ul>
26              <li></li>
27             </ul>
28             <div class="arrow">
29                 <a class="arrow-l" href="javascript:void(0)"><</a>
30                 <a class="arrow-r" href="javascript:;">></a>
31             </div>
32         </div>

Part2:

那么问题来了window.onload = function(){}又是什么呢?

window.onload 的意思就是页面全部加载完成之后做一些事情,甚至包括图片。

Part3:

那么如果这个问题该怎么解决呢?

 1 window.onload=function(){
 2 var o=document.getElementById(‘infozone‘);
 3 window.setInterval(function(){scrollup(o,20,0);},3000);
 4 }
 5
 6 window.onload = function(){
 7 var $ = function($){
 8 return document.getElementById($);
 9 };
10
11 window.onload = function(){
12 var $1 = function($1){
13 return document.getElementById($1);
14 };

[问题]:页面只执行一个事件,另外两个不执行.

我们应该怎么改写能让这三个onload()都能加载到页面中?

[解决]:

 1 window.onload=function(){
 2     var o=document.getElementById(‘infozone‘);
 3     window.setInterval(function(){scrollup(o,20,0);},3000);
 4
 5
 6     var $ = function($){
 7         return document.getElementById($);
 8     }
 9     var $1 = function($1){
10         return document.getElementById($1);
11     }
12 }

浏览器出现Cannot set property 'onclick' of null的问题

时间: 2024-08-05 19:10:24

浏览器出现Cannot set property 'onclick' of null的问题的相关文章

Cannot set property &#39;onclick&#39; of null的问题

转载自: https://my.oschina.net/ximidao/blog/351017 摘要: 测试点击事件的时候浏览器报错,提示Uncaught TypeError: Cannot set property 'onclick' of null 今天看了一个W3School JS点击事件的测试案例,详情页:http://www.w3school.com.cn/tiy/t.asp?f=js_dom_event_onclick4,其代码为: <!DOCTYPE html><html&

Cannot set property ‘onclick‘ of null的问题

今天看了一个W3School JS点击事件的测试案例,详情页:http://www.w3school.com.cn/tiy/t.asp?f=js_dom_event_onclick4,其代码为: <!DOCTYPE html> <html> <head> </head> <body> <p>点击按钮就可以执行 <em>displayDate()</em> 函数.</p> <button id=

报错之-Cannot set property &#39;onclick&#39; of null

当js文件放在head里面时,如果绑定了onclick或者onmouseover事件,就会出现如下图类似的错误,是因为浏览器的加载你写的html文档的顺序是从上往下,加载完按钮节点才执行的js,所以当浏览器自顶向下解析时,找不到onclick绑定的按钮节点,于是报错.解决办法有:第一,把js文件放在底部加载:第二,使用window.onload=function(){}包裹js内容. 报错之-Cannot set property 'onclick' of null

百度ueditor 实例化 Cannot set property &#39;innerHTML&#39; of null 完美解决方案

此时此刻,我正在用博客园推荐的TinyMCE编辑器写这个博客,突然想起最近在项目中使用百度ueditor编辑器中的一些经历.所以记录在此,与大家分享. 不得不说,百度ueditor是一款很好的在线编辑器,为开发者提供了诸多便利,你甚至可以用它来把word文档的内容按照一定的格式转换成html代码,然后再放进自己的项目中. 1.我们的项目中,用户在注册时有可能需要查看用户协议和隐私协议,而我们的文案是将这两个协议的内容放在word文档中,作为苦逼的开发人员,你需要把这些文字展示在html页面上,并

Extjs4---Cannot read property &#39;addCls&#39; of null

用Extjs4 MVC做后台管理系统时,通过点击左边导航菜单往tabpanel添加tab,然后关闭再打开某个tab,结果tabpanel不能显示tab,系统页面处于崩溃状态,并且浏览器报错Cannot read property 'addCls' of null. 经分析查阅网上资料得知,原因是:定义grid的时候添加序号这行代码:new Ext.grid.RowNumberer()引起的.如果没有这样代码,系统运行正常. 当用Extjs创建(create)一个window,panel时,或者就

webapi使用swagger出现“Cannot read property &#39;parameters&#39; of null”

前端时间在webapi项目使用swagger来提供接口文档及测试工具,按网上方法(http://wmpratt.com/swagger-and-asp-net-web-api-part-1)配置好之后在浏览器控制台出现"Cannot read property 'parameters' of null"错误. 后面发现问题出在//localhost:5645/swagger/docs/v1这个JSON资源上面,序列化出来的JSON,包含了为NULL的字段,导致swagger-ui-mi

Three.js three.js Uncaught TypeError: Cannot read property &#39;getExtension&#39; of null

在调试Three.js执行加载幕布的时候,突然爆出这个错误three.js Uncaught TypeError: Cannot read property 'getExtension' of null,查询了半天也没找到结果 最后突然想到是不是浏览器的设置问题,检查了一下WebGL,果然重新安装浏览器之后没有开启,正常开启之后,显示正常 留痕MARK一下 PS:可以直接在百度上搜索浏览器的WebGL的开启方式 :) Three.js three.js Uncaught TypeError: C

webpack打包踩坑之TypeError: Cannot read property &#39;bindings&#39; of null

file loader介绍:https://www.webpackjs.com/loaders/file-loader/ babel loader介绍:https://webpack.js.org/loaders/babel-loader/ webpack-dev-server介绍:https://www.webpackjs.com/configuration/dev-server/  ,https://www.jianshu.com/p/73d74445e5c5 今日在学习百度前端学院的一个小

org.hibernate.PropertyValueException: not-null property references a null or transient value: model.

今天在写一个SSH整合的项目时,首先将数据库操作部分单独分离出来,写完后使用Junit进行测试,经过测试,发现没有任何问题,对数据库中的内容进行增删改查没有问题,但是将他整合到SSH的项目中时,报出了这么一个错误org.hibernate.PropertyValueException: not-null property references a null or transient value: model.TransactionRecord.remark.当时很是费解,因为当时当时在Junit