gpt4 book ai didi

javascript - 图像加载后触发 JavaScript

转载 作者:行者123 更新时间:2023-11-28 02:36:04 25 4
gpt4 key购买 nike

我有一个可以使用 ajax 脚本动态更改的 div:

{
var xmlHttp = GetXmlHttpObject();
var url="/dashboard/ajax/images_pop_ajax.asp";
if (!xmlHttp){
alert ("Browser does not support HTTP Request")
return
}
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState == 1)
{
document.getElementById("images_inner").innerHTML = LoadingAlert;
}
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var result = xmlHttp.responseText;
document.getElementById('images_inner').innerHTML = result;
window.onload = function(){AdjustColumns();}
}
};
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}

function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}

images_pop_ajax.asp 文件运行时,它会返回 8 个图像,然后将这些图像放入 div 选项卡 id images_inner 中。完成后,我想调整页面的列,使所有内容都对齐。所以我运行这个脚本:

function AdjustColumns()
{
var ImgCol = document.getElementById('images_inner').offsetHeight;
var ClassCol = 820;
if (ImgCol > 574)
{
var ToAdd = eval(ImgCol - 574);
document.getElementById('class_inner').style.height = eval(ClassCol + ToAdd) + 'px';
}
}

我遇到的问题是,AdjustColumns() 脚本在加载所有图像之前运行,因此列不会对齐。加载图像后如何让它运行?

提前非常感谢,

尼奥 jack

最佳答案

对于每个图像,您应该添加此事件并等待它们全部加载(使用计数器)

   var counter = 0;
var image = new Image();
//attachEvent("onload") for ie
image.addEventListener("load", function() {
counter++;
if(counter == 8) adjustColumns();
}, false);
image.src = "image.jpg";

请注意,虽然有时它不能很好地工作,例如当图像已经在缓存中时。

关于javascript - 图像加载后触发 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com