1

我正在开发一个使用 javascript/jQuery 和 iFrames的网络浏览器自动化项目。问题是代码必须等待 iframe 加载才能继续执行。

        // set value on iframe input on page 1
        $('#csi').contents().find('#inputonpage1').val('hello world');
        // click the send button
        $('#csi').contents().find('#sendbuttononpage1').trigger('click');

        // here must wait until the iframe loads it's 'new' page
        ?

        // set value on another field on page 2
        $('#csi').contents().find('#inputonpage2').val('hello world again');
        // click a button...
        $('#csi').contents().find('#sendbuttononpage2').trigger('click');
        // wait to load... and continue on page 3... 4... 5... etc...
        . 

等等...

我已经阅读了有关 $().load 函数回调以及所有这些内容的信息,但我需要一些东西来防止在 iframe 准备好之前执行下一行代码。正如我在所有其他帖子中看到的那样,不仅仅是一次。

我正在尝试使用全局来标记 iframe 状态...类似于:

var isready = false;

$(document).ready(function(){        

    $("#csi").load(function(){
        isready=true;
    });

    $("#buttonstart").click(function(){
        // fill fields and click button...
        // start wait function
        // fill fields and click button...
    });
});

function wait(){
    while(!isready){
        // thread hangs here....
    }
    isready=false;   // disarms
}

谢谢,

4

0 回答 0