浏览器出现Cannot set property 'onclick' of null的问题
Part1:
当js文件放在head里面时,如果绑定了onclick事件,就会出现这样的错误,
是因为W3School的写法是浏览器先加载完按钮节点才执行的js,所以当浏览器自顶向下解析时,找不到onclick绑定的按钮节点,于是报错。
【1】因此,需要把js文件放在底部加载,就会避免该问题。
【2】在js代码外包一个window.onload = function(){} 即可解决问题
代码如下:[注]:这里的代码只作为演示代码
<script>
window.onload = function(){
var mainSlider = document.getElementsByClassName("mian-slider")[0];
var aaa = mainSlider.children[0];
var ul = mainSlider.children[1];
var arrow = mainSlider.lastChild || mainSlider.lastElementChild;
var imgWidth = mainSlider.offsetWidth; }
</script>
<div class="main-slider">
<a id="aaa">
<img src="data:images/slide.jpg" alt="">
<img src="data:images/slide1.jpg" alt="">
<img src="data:images/slide2.jpg" alt="">
<img src="data:images/slide3.jpg" alt="">
<img src="data:images/slide4.jpg" alt="">
<img src="data:images/slide5.jpg" alt="">
</a>
<ul>
<li></li>
</ul>
<div class="arrow">
<a class="arrow-l" href="javascript:void(0)"><</a>
<a class="arrow-r" href="javascript:;">></a>
</div>
</div>
Part2:
那么问题来了window.onload = function(){}又是什么呢?
window.onload 的意思就是页面全部加载完成之后做一些事情,甚至包括图片。
Part3:
那么如果这个问题该怎么解决呢?
window.onload=function(){
var o=document.getElementById('infozone');
window.setInterval(function(){scrollup(o,20,0);},3000);
}
window.onload = function(){
var $ = function($){
return document.getElementById($);
};
window.onload = function(){
var $1 = function($1){
return document.getElementById($1);
};
[问题]:页面只执行一个事件,另外两个不执行.
我们应该怎么改写能让这三个onload()都能加载到页面中?
[解决]:
window.onload=function(){
var o=document.getElementById('infozone');
window.setInterval(function(){scrollup(o,20,0);},3000);
var $ = function($){
return document.getElementById($);
}
var $1 = function($1){
return document.getElementById($1);
}
}
浏览器出现Cannot set property 'onclick' of null的问题的更多相关文章
- Cannot set property 'onclick' of null的问题
转载自: https://my.oschina.net/ximidao/blog/351017 摘要: 测试点击事件的时候浏览器报错,提示Uncaught TypeError: Cannot set ...
- Uncaught TypeError: Cannot set property 'onclick' of null解决办法
如果把js内容直接放在这个head标签以内,button按钮不能正常点击更换body的背景颜色,报错提示:demo6.html:16 Uncaught TypeError: Cannot set pr ...
- Cannot set property 'onclick' of null报错
经常几个页面使用公共js文件, 原来遇到也没留意, 原来是本页面执行的时候, 其他页面也在执行并赋予id于onclick. 因为页面是正常情况下是不存在null和undefined if(null){ ...
- 报错之-Cannot set property 'onclick' of null
当js文件放在head里面时,如果绑定了onclick或者onmouseover事件,就会出现如下图类似的错误,是因为浏览器的加载你写的html文档的顺序是从上往下,加载完按钮节点才执行的js,所以当 ...
- 【jQuery学习】用JavaScript写一个输出多选框的个数报错:Cannot set property 'onclick' of null"
说明:代码段来源于:<锋利的jQuery> 根据代码段我补充的代码如下: <!DOCTYPE html> <html> <head> <meta ...
- Uncaught TypeError: Cannot set property onclick' of null
如果出现以上问题,只需要把<script src="xxx.js"></script> 移动到最后,</body>的前面;
- 百度ueditor 实例化 Cannot set property 'innerHTML' of null 完美解决方案
此时此刻,我正在用博客园推荐的TinyMCE编辑器写这个博客,突然想起最近在项目中使用百度ueditor编辑器中的一些经历.所以记录在此,与大家分享. 不得不说,百度ueditor是一款很好的在线编辑 ...
- Extjs4---Cannot read property 'addCls' of null - heirenheiren的专栏 - 博客频道 - CSDN.NET
body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...
- 错误:Cannot set property 'innerHTML' of null
360浏览器代码编辑器里提示错误:Cannot set property 'innerHTML' of null 原因是代码执行时要调用的内容不存在
随机推荐
- Matrices and Vectors
Matrices and Vectors Matrices are 2-dimensional arrays: A vector is a matrix with one column and man ...
- unity客户端基本框架(转载)
框架概述: 基础系统的框架搭建,其中包括: UI框架(NGUI + MVC) 消息管理(Advanced CSharp Messenger) 网络层框架(Socket + Protobuf ) 表格数 ...
- 愚蠢的遗留BUG
二次开发本来就是很恶心的事,我竟然是三次开发. 今天遇到一个BUG,上传图片的时候报错了,操作过程很简答,点击上传按钮,选择图片,确定上传,如图: 报错信息很直白,也很奇怪: (为了写博客,把代码回滚 ...
- PHP实现前台页面与MySQL的数据绑定、同步更新
今天我来给大家介绍一个PHP-MySQL的小项目. 使用 PHP和前台Ajax 实现在前台对MySQL数据库中数据的增.删等操作语句功能. 如果有问题,欢迎拍砖~ 首先,我们先做好前台HTML.CSS ...
- openstack学习心得:glance 架构、概念、后端存储配置方式
glance 架构 glance 服务概述 Image 服务 使得用户可以发现.注册.检索虚拟机镜像.它对外提供REST API使得你能够查询虚拟机镜像元数据和检索一个真实的镜像.你可以通过镜像服务将 ...
- C#利用UdpClient发送广播消息
首先写个接受消息的客户端.这里偷了点懒,new UdpClient(11000)就是用Udp方式侦听11000端口,侦听任何发送到11000端口的消息都会接收到. 代码 : ); Byte[] sen ...
- C#导出EXCEL没有网格线的解决方法
今天在做项目时,通过流导出数据到Excel却不显示网格线,真是郁闷.上网查了好久才得一良方(注意<XML>标签中的代码): DataTable thisTable = DBHelper.G ...
- Python 简单的天气预报
轻巧的树莓派一直是大家的热爱,在上面开发一些小东西让我们很有成就感,而在linux下,python能使麻烦的操作变得简单,而树莓派功耗还很低,相结合,完美! 1,直接进入正题,一般在linux或树莓派 ...
- 一款基于vue2.0的分页组件---写在页面内
通过 Vue2.0 实现的分页 可自由设置分页显示的多少.上一页.下一页.省略号等,也可直接输入跳转到的页码进行跳转,分页的样式可自由调整 // 1.页面的 head 部分,需要设计好页面的样式 .p ...
- Maven依赖分析
背景 昨天帮一位同事排查了一个依赖冲突的问题.问题的现象就是在IntelliJ IDEA运行项目正常,但是打包(Maven assembly jar)之后传到服务器运行失败,报错:Caused by: ...