我有一段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);
}
我正在使用twitter bootstrap的进度条。正在运行的src脚本是一个POST ajax URL,它不是上传/下载所以我不能使用AJAX进度eventListener。我想让用户看到正在发生的事情,某种反馈。
如果在进度条逐步达到100%之前加载了iframe src,我希望它跳转到100%然后显示PHP脚本的结果。
任何建议都将不胜感激。
答案 0 :(得分:3)
为什么不在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)