jane
08-19-2002, 07:16 PM
My preloader works great except it continues to load past 100%. How can I get it to stop. My pop up prompt to continue to next page appears at the right time but the percentage counter goes beyond 100%. How do I get it to stop the percentage counter it has loaded all the images.
<html>
<head>
<script>
var pics = new Array ("DBCpublic/images to use/horiz linegrey.jpg", "DBCpublic/images to use/spider.jpg", "DBCpublic/images to use/images alt home/bnrie.gif", "DBCpublic/images to use/images alt home/greyline.jpg", "DBCpublic/images to use/images alt home/segment2.jpg");
var url = "DBCpublic/home.htm";
var doConfirm = true;
var canSkip = true;
var imgObjs = new Array(pics.length);
var loaded = 0;
var total = pics.length;
var cPercent = 0;
var barLayer = null;
var percentLayer = null;
var statLayer = null;
var doneMsgLayer = null;
function getLayer(layerID) {
if (document.getElementById)
return document.getElementById(layerID);
else if (document.all)
return document.all[layerID];
else
return null;
}
function updateBar() {
statLayer.innerHTML = "<font face=\"Arial\" color=\"#cccccc\" size=\"2\">" +loaded+ "/" +total+ "</font>";
var percent = Math.round(loaded/total * 100);
if (cPercent != percent)
{
cPercent = percent;
barLayer.style.width = (cPercent*3.5) +"px";
percentLayer.innerHTML = "<font color=\"#cccc99\"><B>" +cPercent+ "%</B></font>";
}
if (loaded == total)
{
doneMsgLayer.innerHTML = "<a href=\"javascript:done()\"><font face=\"Arial\" color=\"#cccc99\" size=\"2\">enter site (click here)</font></a>";
if (doConfirm && confirm("files have loaded, continue to next page?"))
done();
}
}
function startLoading() {
if (document.getElementById || document.all)
{
barLayer = getLayer("bar");
percentLayer = getLayer("percent");
statLayer = getLayer("stat");
doneMsgLayer = getLayer("doneMsg");
if (canSkip)
doneMsgLayer.innerHTML = "<a href=\"javascript:done()\"><font color=\"#cccc99\" size=\"2\" face=\"Arial\">skip pre-loading</font></a>";
for (i=0; i<pics.length; i++)
{
imgObjs[i] = new Image();
imgObjs[i].onload = imgLoaded;
imgObjs[i].onerror = imgFailed;
imgObjs[i].src = pics[i];
}
}
else
{
alert("You are likely running an older browser which is not compatible with this preloading script. Maybe it is time to update your browser.\n\nProgram is skipping preloading.");
window.location.replace(url);
}
}
function done() {
parent.window.location.replace(url);
}
function imgFailed() {
alert("The following image failed to load, probably a broken link:\n" +this.src+ "\nPlease contact the webmaster to report error. The program will skip this file now.");
loaded++;
updateBar();
}
function imgLoaded() {
loaded++;
updateBar();
}
</script>
<html>
<head>
<script>
var pics = new Array ("DBCpublic/images to use/horiz linegrey.jpg", "DBCpublic/images to use/spider.jpg", "DBCpublic/images to use/images alt home/bnrie.gif", "DBCpublic/images to use/images alt home/greyline.jpg", "DBCpublic/images to use/images alt home/segment2.jpg");
var url = "DBCpublic/home.htm";
var doConfirm = true;
var canSkip = true;
var imgObjs = new Array(pics.length);
var loaded = 0;
var total = pics.length;
var cPercent = 0;
var barLayer = null;
var percentLayer = null;
var statLayer = null;
var doneMsgLayer = null;
function getLayer(layerID) {
if (document.getElementById)
return document.getElementById(layerID);
else if (document.all)
return document.all[layerID];
else
return null;
}
function updateBar() {
statLayer.innerHTML = "<font face=\"Arial\" color=\"#cccccc\" size=\"2\">" +loaded+ "/" +total+ "</font>";
var percent = Math.round(loaded/total * 100);
if (cPercent != percent)
{
cPercent = percent;
barLayer.style.width = (cPercent*3.5) +"px";
percentLayer.innerHTML = "<font color=\"#cccc99\"><B>" +cPercent+ "%</B></font>";
}
if (loaded == total)
{
doneMsgLayer.innerHTML = "<a href=\"javascript:done()\"><font face=\"Arial\" color=\"#cccc99\" size=\"2\">enter site (click here)</font></a>";
if (doConfirm && confirm("files have loaded, continue to next page?"))
done();
}
}
function startLoading() {
if (document.getElementById || document.all)
{
barLayer = getLayer("bar");
percentLayer = getLayer("percent");
statLayer = getLayer("stat");
doneMsgLayer = getLayer("doneMsg");
if (canSkip)
doneMsgLayer.innerHTML = "<a href=\"javascript:done()\"><font color=\"#cccc99\" size=\"2\" face=\"Arial\">skip pre-loading</font></a>";
for (i=0; i<pics.length; i++)
{
imgObjs[i] = new Image();
imgObjs[i].onload = imgLoaded;
imgObjs[i].onerror = imgFailed;
imgObjs[i].src = pics[i];
}
}
else
{
alert("You are likely running an older browser which is not compatible with this preloading script. Maybe it is time to update your browser.\n\nProgram is skipping preloading.");
window.location.replace(url);
}
}
function done() {
parent.window.location.replace(url);
}
function imgFailed() {
alert("The following image failed to load, probably a broken link:\n" +this.src+ "\nPlease contact the webmaster to report error. The program will skip this file now.");
loaded++;
updateBar();
}
function imgLoaded() {
loaded++;
updateBar();
}
</script>