我的想法是为了减少每次在IMG中都增加onload事件,就在window.onload中直接批量给img绑定事件
但是却无法成功,假如改成对onmouseover事件的绑定却是成功的。代码如下function suckerfish(type, tag, parentId)
{
if (window.attachEvent)
{
window.attachEvent("onload", function()
{
var sfEls = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
type(sfEls);
});
}
else window.addEventListener("load",function()
{
var sfEls = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
type(sfEls);
},false);
}
sfOnload = function(sfEls)
{
for (var i=0; i<sfEls.length; i++)
{
sfEls[i].onload=function()
{
alert(123);
}
}
}
suckerfish(sfOnload,'img','123');最后,假如在<img onload='show(this)'/>手动绑定也是可以的。
苦思半天找不到答案,希望各位大侠解答。
但是却无法成功,假如改成对onmouseover事件的绑定却是成功的。代码如下function suckerfish(type, tag, parentId)
{
if (window.attachEvent)
{
window.attachEvent("onload", function()
{
var sfEls = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
type(sfEls);
});
}
else window.addEventListener("load",function()
{
var sfEls = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
type(sfEls);
},false);
}
sfOnload = function(sfEls)
{
for (var i=0; i<sfEls.length; i++)
{
sfEls[i].onload=function()
{
alert(123);
}
}
}
suckerfish(sfOnload,'img','123');最后,假如在<img onload='show(this)'/>手动绑定也是可以的。
苦思半天找不到答案,希望各位大侠解答。
这时候再绑 图片的 onload 有意义么
if(document.addEventListener)
document.addEventListener("DOMContentLoaded",function() {
document.removeEventListener("DOMContentLoaded",arguments.callee,false);
readyCall();
},false);
else if(document.attachEvent) {//for IE
if(document.documentElement.doScroll && window.self==window.top) {
(function() {
try {
document.documentElement.doScroll("left");
}catch(ex) {
setTimeout(arguments.callee,5);
return;
}
readyCall();
})();
}else {//maybe late but also for iframes
document.attachEvent("onreadystatechange",function() {
if(document.readyState==="complete") {
document.detachEvent("onreadystatechange", arguments.callee);
readyCall();
}
});
}
}
}
onReady(function() {
//加上你上面的代码,如果不需要在iframe中运行,可以将上面方法中最后一个else去掉
});
需要2楼这样的 处理 不过好象也不够完美
回答的话另外给分。。不过你必须教我如何给你分 - -
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<div id="div1">
<p>1楼wcwtitxu 说的不错</p>
<img src="http://avatar.profile.csdn.net/6/D/1/2_sohighthesky.jpg"/>
<img src="http://avatar.profile.csdn.net/A/6/8/2_wcwtitxu.jpg"/>
</div>
</body>
<script type="text/javascript">
var onReady=function(readyCall) {
if(document.addEventListener)
document.addEventListener("DOMContentLoaded",function() {
document.removeEventListener("DOMContentLoaded",arguments.callee,false);
readyCall();
},false);
else if(document.attachEvent) {//for IE
if(document.documentElement.doScroll && window.self==window.top) {
(function() {
try {
document.documentElement.doScroll("left");
}catch(ex) {
setTimeout(arguments.callee,0);
return;
}
readyCall();
})();
}
}
}
onReady(function() {
var imgs=document.getElementsByTagName("img");
var len=imgs.length;
for(var i=0;i<len;i++) {
//IE8,FF3.5,chrome3.0下测试通过,(这里不能加类似alert("a");的语句,因为会阻止js的这个线程,但是不会阻止图片加载,等点确定图片就加载完了)
(function(img){
img.onload=function() {alert(this.src)}
})(imgs[i]);
}
});
////给分就算了,只有提问题才能给分,下次提问多给点分就行了
</script>
</html>