通过JavaScript加载远程影像,然后选择添加到阵列

使用JavaScript我试图加载图像而不是当前的页面上(从图片链接数组),如果他们足够大,把它们添加到一个数组。 我执行这个当前页面加载之后,虽然一个书签,或Firebug的控制台。 使用FF。

我来最接近的是下面的,但是这似乎并没有工作,我猜这是因为规模测试运行图像加载之前。 显然,我尝试用“的onload”解决这个问题是行不通的。 我怎样才能解决这个问题了,或者有更好的/更简单的方法来完成这项任务?

(function() { //create array for the images var imageArray = new Array(); function loadIfBig(x){ if (x.height > 299 && x.width > 299 && (x.height > 399 || x.width > 399)) { imageArray.push(x); //dispImage = '<img src=' + x.src + '><br>'; //document.write('<center>' + dispImage + '</center>'); } return true; } //given an array of imageLinks: for (x in imageLinks){ //create an image form link and add to array if big enough im = document.createElement('img'); im.src = imageLinks[x]; im.onload = loadIfBig(im); } //view results: for (x in imageArray){ disp_image = '<img src='+imageArray[x].src+'><br>'; document.write('<center>'+disp_image+'</center>'); } })();

更新:

谢谢! 确保你是对的,我失去了一些东西愚蠢的在这里,但我做了你的建议的更改,然后拉着写元素融入loadIfBig,但它似乎并没有被执行的功能。 低于目前的代码,其中包括一对夫妇的样本输入链接:

(function() { var imageArray = new Array(); var imageLinks = ['http://1.bp.blogspot.com/_mfMRTBDpgkM/SwCwu1RPphI/AAAAAAAAJpw/v9YInFBW84I/s1600/800px-San_Francisco_in_ruin_edit2.jpg','http://2.bp.blogspot.com/_mfMRTBDpgkM/SwCwulSZ_yI/AAAAAAAAJpo/NsRcJdpz4Dk/s1600/San_Francisco_PC_59.jpg'] function loadIfBig(x){ if (x.height > 299 && x.width > 299 && (x.height > 399 || x.width > 399)) { imageArray.push(x); dispImage = '<img src=' + x.src + '><br>'; document.write('<center>' + dispImage + '</center>'); } return true; } processImages = function(){ for (x in imageLinks) { //create an image from link and add to array if big enough im = document.createElement('img'); im.src = imageLinks[x]; im.onload = function(){ loadIfBig(this); } } } })();

--------------解决方案-------------

这个补丁不起作用,因为你实际上是立即执行它。

im.onload = loadIfBig(im) 实际运行的功能。

你可以做的是一样的东西:

im.onload = function() {
loadIfBig(this);
}

另一个问题是,你通过大图像阵列正在运行的onload回调实际上已经执行前的事实。 需要被卡在一个不同的功能,并要求一旦所有的onloads完成。

分类:JavaScript的 时间:2015-03-15 人气:0
本文关键词: 图像,JavaScript的,装
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.502 (s). 10 q(s)