我尝试从Mail.ru社交网络(Мой Мир)获取分享数。
如果我转到浏览器,请输入此网址http://connect.mail.ru/share_count?url_list=THIS_MY_URL&callback=1&func=?
然后按回车键,我会收到此回复:
?(
{
"THIS_MY_URL":{"shares":10,"clicks":5}
});
这是我的jQuery代码:
var url = encodeURIComponent(location.href);
$.getJSON('http://connect.mail.ru/share_count?url_list=' + url + '&callback=1&func=?', function(response) {
alert(response[url].shares);
});
在Chrome控制台中,我收到以下消息:
Uncaught TypeError: Cannot read property 'shares' of undefined
什么错了?如何使它工作?
请帮帮我!
答案 0 :(得分:0)
看到这里我得到了价值。
var data = { "vk.com": { "shares": 12372, "clicks": 413} };
for (var url in data) {
if (data.hasOwnProperty('vk.com')) {
var shares= data['vk.com'].shares;
}
}
答案 1 :(得分:0)
工作解决方案I found here。
<强>第一即可。当响应对象为空时,显示错误消息Uncaught TypeError: Cannot read property 'shares' of undefined
。当URL没有共享计数时,这是来自社交网络的标准响应,即Object = {}
。
要修复它,请将此代码放入$.getJSON()
(来自我的第一篇文章):
if ($.isEmptyObject(response)) alert('0'); // If Object = {}
else // Code for not empty Object
<强>第二即可。对于包含shares > 0
(或clicks > 0
)的网址的展示计数器,请使用以下代码:
var url = encodeURIComponent(location.href);
for (var url in response) {
if (response.hasOwnProperty(url)) {
var count = response[url].shares;
break;
}
}
alert(count);