如何让网页下载完成后自动执行一段js代码?
我用一段代码判断文章中的图片是否太大,大的话就缩小,这个要等网页中的东西(尤其是图片)下载完成后执行这段代码,如何实现呢?// 我尝试写在页面的最后,但有时候会不执行
回覆: 如何让网页下载完成后自动执行一段js代码?
function loadImg(src){if(!picIsInited){
$("stage").style.display = 'none';
$("stage").innerHTML = '';
myGraphic = d.createElement("img");
myGraphic.src = src+'?'+pRand;
myGraphic.id = 'myGraphic';
$("stage").appendChild(myGraphic);
}
if([color=red]myGraphic.complete[/color]){
destroyLoad();
$("stage").style.display = "";
}else{
picIsInited = true;
setTimeout('loadImg("'+src+'")',50);
}
}
注意红色代码
如果complete为true你就可以获得图片大小了。
[color=silver]以上代码出自我的个人主页[/color]
回复: 如何让网页下载完成后自动执行一段js代码?
这样是单张单张的加载图片,我想找个方法就是网页下载完毕就执行一段js,不只是用于图片缩放回覆: 如何让网页下载完成后自动执行一段js代码?
给每个图片加上CLASS.还是这个思想,只不过你需要遍历所有这个CLASS的图片.
用PROTOTYPE的document.getElementsByClassName方法
然后再each()一下
回复: 如何让网页下载完成后自动执行一段js代码?
汗! 我只是举了个缩放图片的例子...问简单点吧
如何让网页内容下载完后 执行 alert('hi');
回复: 如何让网页下载完成后自动执行一段js代码?
<body onload="alert('下载完了')">回覆: 如何让网页下载完成后自动执行一段js代码?
这样并不能判断文件内容是否完全读取完毕,只是代码全部读取完毕而已。我给你的方法就是针对你的那些图片流的。
你只需要用一个setInterval去遍历所有img的complete属性就可以得知图片是否都加载完毕了。
flash这样的plugin我就不知道了。
代码读完 图片没读完 你如何在代码读完之后判断图片大小?
回复: 如何让网页下载完成后自动执行一段js代码?
他已经说明了,调整图片大小只是他举的一个例子,并不是要实现这个功能,他只是想实现网页加载完之后调用一下js函数。。。。回覆: 如何让网页下载完成后自动执行一段js代码?
[color=red]这个要等网页中的东西(尤其是图片)下载完成后执行这段代码,如何实现呢?[/color]
回复: 回覆: 如何让网页下载完成后自动执行一段js代码?
[quote]给每个图片加上CLASS.还是这个思想,只不过你需要遍历所有这个CLASS的图片.
用PROTOTYPE的document.getElementsByClassName方法
然后再each()一下[/quote]
把你说的改一下。。。
用document.getElementsByTagName('img');
这样得到的是整个页面所有图片的数组,然后遍历,如果有没加载完的,用setTimeout函数延迟一秒再调用函数检查一次,直到所有图片加载完为止。。。。。
(不过我记得body的onload事件应该是整个页面加载完之后再执行吧,我并不清楚是否不会等图片加载完成)
回复: 回覆: 如何让网页下载完成后自动执行一段js代码?
[quote]把你说的改一下。。。用document.getElementsByTagName('img');
这样得到的是整个页面所有图片的数组,然后遍历,如果有没加载完的,用setTimeout函数延迟一秒再调用函数检查一次,直到所有图片加载完为止。。。。。
(不过我记得body的onload事件应该...[/quote]
刚才测试了一下 body的onload事件应该是全部下载完了以后执行的
可以用几个在远程服务器的大图片来测试下 应该是这样的 :D
回复: 如何让网页下载完成后自动执行一段js代码?
气氛好热烈,我路过,灌下水。。回覆: 如何让网页下载完成后自动执行一段js代码?
to 索尔加class是因为不想活得所有的图片,这样的话可以少遍历一些。
其次我刚才发现图片也有一个onload事件,不知是否属实,可以去试试看。
回复: 如何让网页下载完成后自动执行一段js代码?
加class可以,我把所有需要缩放的图片放在一个div(tbContent)里面[PHP]//自动缩小图片
function rsImg()
{
var img = document.getElementById('tbContent').getElementsByTagName('img');
for (var i=img.length - 1; i >= 0; i--) {
var w = img[i].width;
if (w > 400) {
img[i].height = img[i].height * 400 / img[i].width;
img[i].width = 400;
}
}
}
[/PHP]
回复: 如何让网页下载完成后自动执行一段js代码?
方法当然会有很多种,具体用哪种,看具体情况,我回答问题也不可能答全所有方案,我的回答也有可能出现错误,实践才是硬道理。。。。回复: 如何让网页下载完成后自动执行一段js代码?
[quote]方法当然会有很多种,具体用哪种,看具体情况,我回答问题也不可能答全所有方案,我的回答也有可能出现错误,实践才是硬道理。。。。[/quote]嗯哪
至少现在我用 <body onload="..">还没出错
回复: 如何让网页下载完成后自动执行一段js代码?
[quote]嗯哪至少现在我用 <body onload="..">还没出错...[/quote]
理论上是不会出错了,因为所有的代码已经加载完毕(我没有说iframe)。Maxwin和索尔的思路更加偏向实用,但是我们可能会忽略一件事情,就是我们的代码是运行在各种浏览器的各个版本上的,你们的实践能代表所有的浏览器的所有版本上的行为吗?我想这有待论证。我个人更加偏向于maciafts的思路,毕竟这样的思路更加的缜密。
同时我也想提一个问题,比如在页面中加入iframe元素,而且iframe里面也包含img的标签,用onload是否会存在遗漏的图片没有处理?-- 虽然偶的问题有可能脱离了问题本身,不过既然讨论了,我们就深入一点吧,^_^
回复: 如何让网页下载完成后自动执行一段js代码?
最近确实碰到了一个iframe的问题。由于自己对js不了解,也不知道什么原因,无从来问, 只能描述下症状:我做了个发新闻的东东,里面有了html编辑器,这个是放在一个iframe里面的(暂命名为ifr1)
我自己有放了个iframe(ifr2),里面是图片列表的网页;
我是想实现:点击ifr2里的图片,会将该图片的id自动填写到其父框架中的一个input里面。
现在的问题是:我在本地可以进行这些操作
上传到服务器上后,基本上都会出错。基本上的意思是:偶尔还是有效的
错误提示为:拒绝访问
不知道是不是因为网络原因,导致某些js没完全下载导致的这项错误。
//注:我还有个发贴图的东东,和这个类似,只是没有html编辑器,那个直接点ifr2里的图片一切正常。所以我怀疑是html编辑器的代码太多,有下载延迟导致的错误。。
回复: 如何让网页下载完成后自动执行一段js代码?
[quote]同时我也想提一个问题,比如在页面中加入iframe元素,而且iframe里面也包含img的标签,用onload是否会存在遗漏的图片没有处理?-- 虽然偶的问题有可能脱离了问题本身,不过既然讨论了,我们就深入一点吧,^_^[/quote]刚才试了一下 父页面是要等子页面全部下载完以后 才执行onload的内容 ie和ff都一样
回复: 如何让网页下载完成后自动执行一段js代码?
[quote]现在的问题是:我在本地可以进行这些操作上传到服务器上后,基本上都会出错。基本上的意思是:偶尔还是有效的
错误提示为:拒绝访问 .[/quote]
在本地是通过[url]http://localhost [/url] 这样来访问的么?那么应该是网络的问题吧 这是客户端脚本 跟服务器倒是没有关系的
页:
[1]
2