javascript - 9gag 解析 json

标签 javascript json parsing

我想从中随机挑选一张图片:

http://9gag.com/top/all/index/page/1?view=json

为了正确显示它,我需要知道这张图片的大小。

我使用 YQL 将这个 json 的结果放在一个变量中(称为 source)。

我将 https 替换为 http 并删除每个反斜杠。

var it = $.parseJSON(source);
var total = it.count-1;
var random = Math.floor((Math.random()*total)+0);     
var gagurl = it.items[random];
var gagurldecode = gagurl.replace('\\','');
gagurldecode = gagurldecode.replace('https','http'); //here is the url of the image 

但我无法检索此图像的大小。

   var img = new Image();
   img.src = gagurldecode;

警报(img.height);什么都不返回。

如果我替换

img.src = gagurldecode;

img.src = 'http://d24w6bsrhbeh9d.cloudfront.net/photo/1777377_460s.jpg';

有效。

我做错了什么? PS:对不起我的英语!

最佳答案

这一行是不必要的,因为解析 JSON 时斜杠被转义了:

var gagurldecode = gagurl.replace('\\','');

对于您的实际问题,heightwidth 直到图像下载并检查后才会填充。如果浏览器没有看到图像(在 onload 事件处理程序中),这是异步完成的,但如果像硬编码示例中那样从缓存中检索,则可以同步完成:

img.onload = function() {
    alert(img.height);
}

这每次都有效。

关于javascript - 9gag 解析 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14063553/

相关文章:

javascript - 使用类名访问 iframe

asp.net - NewtonSoft.JSON 版本 9.0.1 的问题

Xcode:宏破坏完成/突出显示

c - C编译器如何解释以下代码序列

javascript - Webstorm 无法识别 ...props 的 prop 类型

javascript - NodeJS - 如何将所有 console.log 写入文件?

javascript - 如何从 gsp 页面上的 javascript 调用 messages.property(参数化)值

java - 如何向 JSON 字符串添加附加属性?

javascript - 如何转换此 JSON 日期时间?

vb.net - 使用 VB.NET 覆盖文本文件中的特定行