1

誰かが私を助けてくれますか?タイムアウトを使用して3秒の遅延後にこのjavascriptが機能を開始するようにしようとしています。

私はまだjavascriptとjqueryを学んでおり、どこが間違っているのか、それを修正する方法を教えていただければ幸いです。

ありがとうございました。

<script type="text/javascript">
    setTimeout(function(){
window.onload = function showPopUp(el) {
var cvr = document.getElementById("cover")
var dlg = document.getElementById("dialog")
cvr.style.display = "block"
dlg.style.display = "block"
if (document.body.style.overflow = "hidden") {
    cvr.style.width = "1024"
    cvr.style.height = "100&#37;"
    }
}
},3000);

</script> 
4

2 に答える 2

2

要するに、あなたはこれを持っています:

setTimeout(function () {
    window.onload = function() {
        // do stuff...
    }
}, 3000);

それはうまくいきません。これは、3 秒後にウィンドウのonloadイベントのハンドラーを割り当てることを意味します。その時点で、イベントはすでに (おそらく) 発生しています。したがって、この関数は実行されません。

代わりに、それをひっくり返します。

window.onload = function() {
    setTimeout(function () {
        // do stuff...
    }, 3000);
}

ここでは、ウィンドウが読み込まれると、3 秒後に何かを実行します。

于 2013-02-02T01:56:42.587 に答える
1

これは間違っています:

setTimeout(function () {
    window.onload = function showPopUp(el) {

onloadこれにより、3 秒後にハンドラーが割り当てられます。この時点で、ウィンドウは既に読み込まれている可能性があります。


window.onload = function showPopUp(el) {...}スクリプトがロードされてから 3 秒待つ部分を取り除きます。

setTimeout(function () {
    var cvr = document.getElementById("cover")
    var dlg = document.getElementById("dialog")
    cvr.style.display = "block"
    dlg.style.display = "block"
    if (document.body.style.overflow = "hidden") {
        cvr.style.width = "1024"
        cvr.style.height = "100&#37;"
    }
}, 3000);

setTimeoutまたは、とを逆にしてwindow.onload、すべてのリソースのロードが完了してから 3 秒待ちます。

window.onload = function showPopUp(el) {
    setTimeout(function () {
       // ...
    }, 3000);
};
于 2013-02-02T01:56:25.200 に答える