Javascript通过豆瓣api实现获取图书的信息(通过图书的isbn号)要如何实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript通过豆瓣api实现获取图书的信息(通过图书的isbn号)要如何实现?相关的知识,希望对你有一定的参考价值。
第一张图是豆瓣官方的给的api,name的属性写成9787115299710,希望可以获取图书的title,,以下是json的格式
这个。。 提供的数据应该是需要使用 JSON来请求吧。
虽然 jq 有jsonp,但是一直没有成功使用过。。 所以自己写了一个简单的。
var jsonp = function (url, callback)if (typeof url=== 'undefined')
throw 'the 1st param "url" missing';
if (typeof callback === 'undefined')
throw 'the 2nd param "callback" missing';
var jsonpcallback = 'callback' + new Date().valueOf();
if (typeof callback !== 'string')
window[jsonpcallback] = callback;
callback = jsonpcallback;
else
window[jsonpcallback] = function (data)
eval(callback).call(window, data);
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url + (url.indexOf('?') == -1 ? '?' : '&') + 'callback=' + jsonpcallback);
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
;
然后,你在页面中这样调用:
jsonp('https://api.douban.com/v2/book/isbn/9787115299710', function (data)var title = data.title;
// 你自己的数据处理 可以通过 for..in 的结构来遍历data的属性。
);
还是补充一下吧,这样可以取到返回的所有数据(<ul><li>结构</li>....</ul>),在上面的回调里面调用这个函数:
function getObjectData(data)var f_this = arguments.callee;
var $ul = $('<ul>');
for(var item in data)
var row = data[item];
var $li = $('<li>');
if(!$.isPlainObject(row) && !$.isArray(row))
$li.append(item + ':' + row);
else
$li.append(item).append(f_this(row));
$ul.append($li);
return $ul;
参考技术A //引用jQuery
$.ajax(
url:"http://api.douban.com/v2/book/isbn/9787115299710",
dataType:'jsonp',
success:function( data )
console.log( 'title:', data.title );
);
以上是关于Javascript通过豆瓣api实现获取图书的信息(通过图书的isbn号)要如何实现?的主要内容,如果未能解决你的问题,请参考以下文章