有没有办法让我检查元素是否尚未在 if 语句中“加载”


Is there a way for me to check that an element is not 'loaded' yet in an if statement?

我有一段javascript/jquery,它是一个事件侦听器,等待一个元素加载:

$("#download-iframe").on("load", function() {
    alert("Download iframe loaded.  src attribute value: " + $(this).attr("src"));
});

现在,一旦 src 属性中的脚本完成加载/运行,就会弹出此警报。

我想显示一个缓慢递增的进度条,但我希望它仅在尚未加载$("#download-iframe")元素时才进行细化。

有没有办法检查 if 语句是否加载了元素?

function showProgress() {
    var oneMinute = 60000; // One minute in milliseconds
    var maxTime = 10 * oneMinute; // Maximum time in minutes, 10 minutes
    var progress = 5;
    var increment = 5;
    $("#show-progress").attr("aria-valuenow", increment);
    $("#show-progress").css("width", increment + '%');
    var scriptProgress = setInterval( function() {
        progress += increment;
        if (progress <= 100 && /* ALSO CHECK FOR ELEMENT NOT YET LOADED HERE */) {
            $("#show-progress").attr("aria-valuenow", progress);
            $("#show-progress").css("width", progress + '%');
        }
        else {
             $(".progress").addClass("hidden");
             clearInterval(scriptProgress);
        }
    }, oneMinute / 10);
}

我正在使用推特引导程序的进度条。 正在运行的 src 脚本是一个不是上传/下载的 POST ajax URL,所以我无法使用 AJAX 进度事件侦听器。我想给用户一些正在发生的事情的外观,某种反馈。

如果在进度条增量达到 100% 之前加载 iframe src,我希望它跳到 100%,然后显示 PHP 脚本的结果。

任何建议将不胜感激。

为什么不在load()中设置一个标志

var loaded = false;
$("#download-iframe").on("load", function() {
    loaded = true;
    alert("Download iframe loaded.  src attribute value: " + $(this).attr("src"));
});

然后在if声明中

if (progress <= 100 && loaded)