DOMContentLoadedは動作することがあります。DOMContentLoadedが動作することがありますが、時にはsetTimeoutは通常動作しません。
たとえば、次のコードは動作します:
setTimeout(()=>{
let sites = ['mako.co.il'];
let regex = /\..+/;
let href = window.location.href;
for (let i = 0; i < sites.length; i++) {
if (href.includes(sites[i])) {
let domain = sites[i].replace(regex, '');
document.body.innerHTML =`
<div style="direction: ltr; position: fixed; top: 0; z-index: 999999; display: block; width: 100%; height: 100%; background: red">
<p style="position: relative; top: 40%; display: block; font-size: 66px; font-weight: bold; color: #fff; margin: 0 auto; text-align: center">
Enough with this ${domain} bullshit!
</p>
</div>
`;
}
}
}, 1500);
しかし、その代わりsetTimeout(()=>{...}, 1500);
、私はそれはないでしょうdocument.addEventListener('DOMContentLoaded',()=>{...});
使用している場合。
なぜですか?
いずれの場合も、一定の期間待ってからコードを実行します。すべてのDOMツリーがロードされた後、コードが失敗する場合はどうなりますか?
『時にはdoesntの仕事がないと』:
は、だからあなたはおそらくwindow
さんload
イベントの代わりに必要ですか?何が効果的かどうかについて、より具体的なシナリオを教えてください。たとえば、「DOMContentLoadedイベントは、最初のページの読み込み時にのみ動作し、ウェブサイト内の連続したナビゲーションでは機能しません」。これは問題の絞り込みに役立ちます。 – SidOfc[DOMContentLoadedイベント内のコードが正常に動作しません](https://stackoverflow.com/questions/39993676/code-inside-domcontentloaded-event-not-working)|また、このコメント:https://stackoverflow.com/questions/39993676/code-inside-domcontentloaded-event-not-working#comment67265322_39993676 – yuriy636
悲しいことに、私は本当にこのケースでは@SidOfcできないと思います。なぜなら、私が正しく覚えていれば約2ヶ月前にそれは働いていましたが、今はそれがありませんでした。私はこれ以上の詳細を持っていればいいと思っています。間違って思い出し、 'DOMContentLoaded'はまったく動作しませんでした。 – Arcticooling