1. ホーム

nullのプロパティ'onclick'を設定できないエラー

2022-02-25 20:01:33

複数のページで共通のjsファイルを使うことが多く、遭遇したときは気づかなかったのですが、このページが実行されているとき、他のページも実行されonclickにidが与えられていることが判明しました。

通常、ページはnullで未定義であるため

if(null){
    console.log(1);
} else {
    console.log(2);
}//output2
if(undefined){
    console.log(3);
} else {
    console.log(4);
}//output4

だから 解決策 :

最も一般的な方法は、jsに関数名でa関数を記述し、ページタグ <div οnclick="a()"></div> で時間を使用する方法です。

2. ページをクリックするたびに存在するかどうかの判定を、以下のように記述します。

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(ageeSure)は短縮形であり、以下の2行と同等にしか動作しません。

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

取得元:https://www.cnblogs.com/wangduojing/p/9809520.html