在优雅的jquery框架下,很快地实现了将我馆的和厦大馆的随书光盘整合到innovative系统的opac中,接下来会加快电子期刊、电子图书及网络资源的整合。
效果页面:
Tags: Ajax, getJSON, jQuery, JSON, 整合, 随书光盘
和厦大图书馆共通随书光盘有无,通过json来实现数据传递。
json样例(肖同学提供,严重感谢~):
({
”title”:”Title is here”,
”url”:”Url is here”
})
jquery处理样例:
需要注意的是上面回调的参数用callback,而不是jsoncallback。
ajax应用中,最常碰到的问题便是:你从某一个编码(如utf-8)的页面上,向另一不同编码(如gb2312)的页面传递中文参数,从而出现乱码问题,最要命的是,这两边,你都无法做任何改变。
一种简单有效的解决办法是在ajax发出请求的时候,用escape()函数将参数进行编码。它返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 “%20″ 。字符值大于 255 的以 %uxxxx 格式存储。虽然有教程指出escape 方法不能够用来对统一资源标示码 (URI) 进行编码,而应该用encodeURI 和encodeURIComponent 方法来处理,但就我的使用情况来看,escape()方法有效得多。
另一种方法是引入一个第三方页面做中转,在该页面上进行编码处理。
(更多…)
Tags: Ajax, OPAC, utf-8, 乱码, 编码, 资源整合
jQuery是一个更为好用的javascript框架,偶已经决定将其应用到实践中。对于跨域,jQuery可以通过getJSON()方法,以HTTP GET 请求的方式载入 JSON 数据,从而提供了较prototype更简便的解决方案。
在 jQuery 1.2 中,您可以通过使用JSONP(JSON with Padding,或者JSON with callbacks) 形式的回调函数来加载其他网域的JSON数据,如 “myurl?callback=?”。jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。(ps:此行以后的代码将在这个回调函数执行前执行)
jQuery.getJSON(url,[data],[callback])
参数:
url (String) : 发送请求地址。
data (Map) : (可选) 待发送 Key/value 参数。
callback (Function) : (可选) 载入成功时回调函数。
示例:
从 Flickr JSONP API 载入 4 张最新的关于猫的图片。
HTML 代码:
jQuery 代码:
$.getJSON(“http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?”,
function(data){
$.each(data.items, function(i,item){
$(““).attr(“src”, item.media.m).appendTo(“#images”);
if ( i == 3 ) return false;
});
});
——————————————————————————–
从 test.js 载入 JSON 数据并显示 JSON 数据中一个 name 字段数据。
jQuery 代码:
$.getJSON(“test.js”, function(json){
alert(“JSON Data: ” + json.users[3].name);
});
——————————————————————————–
从 test.js 载入 JSON 数据,附加参数,显示 JSON 数据中一个 name 字段数据。
jQuery 代码:
$.getJSON(“test.js”, { name: “John”, time: “2pm” }, function(json){
alert(“JSON Data: ” + json.users[3].name);
});
本文数据及样例来自:http://jquery-api-zh-cn.googlecode.com/svn/trunk/index.html
Tags: Ajax, jQuery, JSON, JSONP, 例子, 源码, 跨域
本文旨在提供可运行的例子,相关的知识点,参见以下链接:
源码运行之前,请先下载以下两个文件,并与domainA.html放在同一目录中:
源码: