[英]Add jQuery.parseJSON to jQuery 1.3
是否可以擴展jQuery 1.3以包含1.4.1+中的parseJSON
函數,並使其功能與jQuery 1.4.1+中的相同? 我該怎么辦呢?
我有一些網站,我必須使用jQuery 1.3,但我有一個需要parseJSON
的工具,它只在jQuery 1.4.1中引入。 我隱約知道我應該從1.4.1+中獲取parseJSON並嘗試將其設為插件,但我不知道該怎么做。
你可以把它變成這樣的插件:
$.extend({
error: function( msg ) { throw msg; },
parseJSON: function( data ) {
if ( typeof data !== "string" || !data ) {
return null;
}
data = jQuery.trim( data );
if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {
return window.JSON && window.JSON.parse ?
window.JSON.parse( data ) :
(new Function("return " + data))();
} else {
jQuery.error( "Invalid JSON: " + data );
}
}
});
你可以在這里測試一下 。
這個代碼是從jQuery 1.4.4中采用的 - 在這里找到 。 在你的問題包含上面的jQuery 1.3之后,只需像$.parseJSON()
一樣使用$.parseJSON()
......或者在你的情況下,只需在上面的代碼之后包含插件,並為它們提供$.parseJSON()
使用。
您可以使用Crockfords實現: https : //github.com/douglascrockford/JSON-js
或者在這里,直接鏈接: https : //github.com/douglascrockford/JSON-js/blob/master/json_parse.js
您是否無法編輯使用1.3的代碼? jQuery.json插件提供$ .toJSON和$ .evalJSON,它們相當於1.4中的新。 您可以嘗試在支持它的瀏覽器中使用本機JSON.parse和JSON.stringify。 在舊版瀏覽器中,您需要包含JSON2以向這些瀏覽器添加JSON.parse和JSON.stringify支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.