web-dev-qa-db-ja.com

document.body.appendChild(i)

IE7でのみdocument.body 無効です; Microsoftスクリプトエディターでデバッグすると、次の行にエラーが表示されます。

document.body.appendChild(i)

コード:

function nm_eraseCookie(name){
    nm_createCookie(name,"",-1)
}
var i=document.createElement('IMG');
i.src='//e.netmng.com/pixel/?aid=403';
i.width=1;
i.height=1;
document.body.appendChild(i);
nm_createCookie('nm_belgacom_bt',
escape('tv1=bun_intvtel;tv2=;tv3=;phone1=hbs_discoveryline;phone2=hbs_classical_line;phone3=;inet1=bun_nettvmob;inet2=hbs_adsl_res_plus;inet3=hbs_adsl_res_go;nm_banner=;nm_popin=hbs_discoveryline;'),183);

この問題を解決するために何をする必要があるか教えてください。

31
san

動いています。 nullチェックに変更するだけです:

if(document.body!= null){document.body.appendChild(element); }

Pointyの提案は良いものです。うまくいくかもしれませんが、試しませんでした。

16
san

試すことができます

document.getElementsByTagName('body')[0].appendChild(i);

コードが<head>で実行されていて、beforeが実行されていると、ブラウザーで<body>が表示されたとしても、これは役に立ちません。 「onload」ハンドラーをいじりたくない場合は、<script>ブロックではなく<head>ブロックをドキュメントの最後に移動してみてください。

54
Pointy

2019では、そのためにquerySelectorを使用できます。

ほとんどのブラウザでサポートされています( https://caniuse.com/#search=querySelector

document.querySelector('body').appendChild(i);
2