在Chrome浏览器下,遇到了这个错误提示:Uncaught TypeError: Cannot set property 'onClick' of null。

  先贴一下JS的代码:

document.getElementById("#register button").onclick=function(){
alert('222');
}

  后来查了是因为我的JS文件引入的顺序比标签加载的早,so,把js文件的引入放到了body下,但是依然报错。多处查询后,解决办法如下:

  网页中的javaScript脚本代码往往需要在文档加载完成后才能够去执行,否则可能导致无法获取对象的情况,为了避免这种情况的发生,可以使用以下两种方式:

  一、通过window.onload来执行脚本代码。window.onload是一个事件,当文档加载完成之后就会触发该事件,可以为此事件注册事件处理函数,并将要执行的脚本代码放在事件处理函数中,于是就可以避免获取不到对象的情况。window.οnlοad=function(){},使用此种方式为window.onload事件绑定事件处理函数,这里绑定的是一个匿名函数,当然也可以绑定非匿名函数。

  二、可以使用addEventListener()和attachEvent()为onload事件绑定事件处理函数,addEventListener()是当前标准的一种事件处理函数绑定方式,但是IE8和IE8以下的浏览器并不支持此方式(addEventListener("type",函数名,false))。

这时用第一种方法就可以解决问题,如果要处理多个事件的绑定,要用第二种方法。

//方法一:

window.onload = function () {
document.getElementById("register").onclick=function(){
alert('222');
}
}

//方法二:(支持各大浏览器)

if(window.addEventListener){
window.addEventListener("load",alert1,false);
window.addEventListener("load",alert2,false);
}
else{
window.attachEvent("onload",alert1);
window.attachEvent("onload",alert2);
} function alert1(){
document.getElementById("register").onclick=function () {
alert('测试1');
};
} function alert2(){
document.getElementById("register").onclick=function () {
alert('测试2);
};
}

参考链接:

1、Uncaught TypeError: Cannot set property 'onClick' of null。

2、Uncaught TypeError: Cannot set property 'onclick' of null onclick not working

3、Uncaught TypeError: Cannot set property 'onclick' of null解决办法

网页开发中使用javascript语言时浏览器操作时弹出错误:Uncaught TypeError: Cannot set property 'onClick' of null。的更多相关文章

  1. JavaScript中"Uncaught TypeError: Cannot set property 'innerHTML' of null"错误

    写了一个函数,在调用时出错:"Uncaught TypeError: Cannot set property 'innerHTML' of null" 代码如下: <!DOC ...

  2. day01-JavaScript中"Uncaught TypeError: Cannot set property 'innerHTML' of null"错误

    转行学开发,代码100天.初写了最简的一段Js代码,即通过document中的innerHTML方法修改一个<p>标签的内容,报以下错误. -"Uncaught TypeErro ...

  3. JavaScript Uncaught TypeError: Cannot read property 'value' of null

    用 JavaScript 操作 DOM 时出现如下错误: Uncaught TypeError: Cannot set property 'value' of null Uncaught TypeEr ...

  4. 【jQuery学习】用JavaScript写一个输出多选框的个数报错:Cannot set property 'onclick' of null"

    说明:代码段来源于:<锋利的jQuery> 根据代码段我补充的代码如下: <!DOCTYPE html> <html> <head> <meta ...

  5. laydate 日期格式为yyyy 或yyyy-MM时,出现错误Uncaught TypeError: Cannot read property 'length' of undefined

    这个改起比较麻烦,没有深究,简单兼容了yyyy 和yyyy-MM,其他格式可能还是会有错误.替换Dates.check方法. //检测日期是否合法 Dates.check = function(){ ...

  6. 网站开发中使用javascript获取浏览器滚动条宽度

    在网站开发中,有时候需要获取浏览器滚动条的宽度,在武汉蚂蹄软件服务中心的技术人员指导之下,我实现了该需求.记录如下: 首先说明一下原理: ①生成一个div,设置滚动条不可见,记录其宽度: ②将上面的d ...

  7. Android开发中如何解决加载大图片时内存溢出的问题

    Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给 ...

  8. FPGA开发中的脚本语言

    多数FPGA开发者都习惯图形化界面(GUI).GUI方式简单易学,为小项目提供了一键式流程.然而,随着FPGA项目越来越复杂,在很多情况下GUI工具就阻碍了工作效率.因为GUI工具不能对整个开发过程提 ...

  9. WPF 窗体中获取键盘和鼠标无操作时的超时提示

    原文:WPF 窗体中获取键盘和鼠标无操作时的超时提示 通过调用Windows API中的GetLastInputInfo来获取最后一次输入的时间 , , );            timer.Tic ...

  10. 手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

    手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法 最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机 ...

随机推荐

  1. 云原生爱好者周刊:使用 GitOps 来动态管理 Grafana 的数据源

    文章推荐 使用 GitOps 来动态管理 Grafana 的数据源 通过 Grafana 的 Provisioning 特性,可以在 provisioning/datasources 目录下添加多个 ...

  2. 在Ubuntu小设备上使用VSCode+SSH开发部署nicegui的Web应用,并设置系统开机自动启动应用

    在一些小的设备上跑Ubuntu系统,需要快速的开发和调整项目的时候,往往使用SSH进行远程的开发测试,这样可以避免传统的打包更新处理,能够快速的在实际环境上测试具体的内容.另外由于系统设备往往需要重启 ...

  3. 解决ValueError: day is out of range for month的问题

    Bug类型 ValueError: day is out of range for month 解决思路 值错误:天超出了月的范围 解决方法 开始日期要早于结束日期 还有一种是 2月最大为28天,如果 ...

  4. 一个整合性、功能丰富的.NET网络通信框架

    前言 最近有不少同学问:.NET网络通信框架有什么好推荐的吗?今天大姚给大家分享一款基于Apache License开源的一个整合性.功能丰富的.NET(包括 C# .VB.Net.F#)网络通信框架 ...

  5. PHP、JS、css、python、mysql 基本常用函数特殊方法记录

    html <a draggable="false">禁止拖拽</a> css .nowrap{word-break:keep-all;white-space ...

  6. Antlr4 语法解析生成器(上)

    简介 Spark SQL.Presto --> Antlr4 SQL 解析器 Flink SQL --> Apache Calcite(通过JavaCC 实现) Spark SQL如何进行 ...

  7. 牛客多校H题题解

    链接:[https://ac.nowcoder.com/acm/contest/81597/H] 来源:牛客网 题目描述 Red stands at the coordinate \((0,0)\) ...

  8. getPropByPath:根据字符串路径获取对象属性 : 'obj[0].count'

    function getPropByPath(obj, path, strict) { let tempObj = obj; path = path.replace(/\[(\w+)\]/g, '.$ ...

  9. vue-amap接入高德地图示例

    通过 CDN 的方式我们可以很容易地使用 vue-amap 写出一个 Hello world 页面. 什么是CDN? 定义是这样的:CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通 ...

  10. python操作sqlite的小例子

    照着菜鸟教程 学习python操作sqlite ubuntu 安装 sudo apte-get install sqlite3 找到了 sqlite3/bionic-updates,bionic-se ...