我有一段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)