这是意大利的奥古斯托
从HTML迁移到XHTML时,我面临一个未解决的问题
在html代码中我有一个图像(bigimg),它首先通过身体onload充电的Js充电,然后预览系列中的其他图像正在充电,从而取代我的图像,
身体:
<body onload="...........;viewimgac('images/accessories/img01cs.jpg');...............">
功能是:
// the waiting image view and the main image loading is managed
function elaboraimgac(urlimg) {
document.getElementById('dattesa').style.filter = "alpha(opacity:"+90+")";
document.getElementById('dattesa').style.MozOpacity = 90/100;
document.getElementById('dattesa').style.KHTMLOpacity = 90/100;
document.getElementById('dattesa').style.opacity = 90/100;
MM_changeProp('dattesa','','style.visibility','visible','LAYER'); // div is made visible through the waiting gift.
document.getElementById('bigimgid').src = urlimg; // I load the image
代码页显示:
<img src="#" id="bigimgid" style="position:absolute;left:0px;top:0px;" onload="finecaricimg()" alt="" />
<img>
标记实际上阻止了XHTML验证。我必须消除onload =&#34; finecaricimg()&#34;,该功能允许使用加载后可用的图像大小查看正确放置在页面中的图像。
我采取了这样的行动:
1)更改<img
代码
<img src="#" id="bigimgid" style="position:absolute;left:0px;top:0px;" alt="" />
2)我补充道:
function elaboraimgac(urlimg) {
//to Js elaboraimgac function
//........
//........
document.getElementById('bigimgid').onload = finecaricimg(); // the specific function is called after loading
}
截取图像加载结束并调用加载结束函数
不幸的是,该程序不成功。通过警报我意识到图像大小 - 当加载结束时 - 是零,好像{。1}}在.src处理之后立即充电,而不是图像加载结束时。
我试图添加:
finecaricimg()
然后,当出现警告窗口时,我等待几秒钟后再单击“确定”。这样,图像大小正确,图像正确放置在页面中。 我无法理解,因为代码似乎是正确的。 因此,我要求你的建议。
答案 0 :(得分:2)
....onload = finecaricimg();
您刚刚立即调用函数并将其结果分配给onload
(就像任何其他函数调用一样)。
您想要在不调用它的情况下自行分配函数。
答案 1 :(得分:0)
我已经用这种方式解决了:
var img = document.getElementById("bigimgid");
img.src = urlimg; // carico l'immagine
img.addEventListener("load", finecaricimg); // a fine caricamento richiamo la funzione specifica
感谢