王多静

这里是我的记事本

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Cannot set property 'onclick' of null报错

经常几个页面使用公共js文件, 原来遇到也没留意, 原来是本页面执行的时候, 其他页面也在执行并赋予id于onclick.

 

因为页面是正常情况下是不存在null和undefined

复制代码
if(null){
    console.log(1);
} else {
    console.log(2);
}//输出2
if(undefined){
    console.log(3);
} else {
    console.log(4);
}//输出4
复制代码

 

所以解决的方法:

①最常用的方法, js写带有函数名的函数a, 在页面标签里使用时间<div onclick="a()"></div>

②每个点击页面之前写上判断,判断是否存在,如下

复制代码
var tan = document.getElementById("tan");
var argeeSure = document.getElementById("argeeSure");
var close = document.getElementById("off");
var sure = document.getElementById("sure");
var body = document.getElementsByTagName("body")[0];
// console.log(body)

if(argeeSure)
argeeSure.onclick = function () {
    tan.style.display = "block";
    body.style.height = "100%";
    body.style.overflow = "hidden";
}
if(close)
close.onclick = function () {
    tan.style.display = "none";
    body.style.height = "auto";
    body.style.overflow = "auto";
}
if(sure)
sure.onclick = function () {
    tan.style.display = "none";
    body.style.height = "auto";
    body.style.overflow = "auto";
}
复制代码

 

其中if(argeeSure)是简写形式, 只作用其简写下面两行, 相当于

if(argeeSure !=null && argeeSure != undefined){
    argeeSure.onclick = function () {
        tan.style.display = "block";
        body.style.height = "100%";
        body.style.overflow = "hidden";
    }
}

 

posted on   王多静  阅读(4025)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示