在不同的浏览器中Stringify对象

时间:2014-02-19 08:32:20

标签: javascript json

我正在使用此plugin来更改将对象转换为JavaScript中的字符串。我想将地理位置对象转换为字符串。

下面的示例在Chrome中给出了正确的结果,但在Firefox中却没有。这是demo

插件:

jQuery.extend({
    stringify : function stringify(obj) {
        alert('Hiii');
        var t = typeof (obj);
        if (t != "object" || obj === null) {
            // simple data type
            if (t == "string") 
                obj = '"' + obj + '"';
            return String(obj);
        } else {
            // recurse array or object
            var n, v, json = [], arr = (obj && obj.constructor == Array);
            for (n in obj) {
                v = obj[n];
                t = typeof(v);
                if (obj.hasOwnProperty(n)) {
                    if (t == "string") 
                        v = '"' + v + '"';
                    else if (t == "object" && v !== null)
                        v = jQuery.stringify(v);
                    json.push((arr ? "" : '"' + n + '":') + String(v));
                }
            }
            return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
        }
    }
});

代码

<script>
$(function(){
    function getObject(){
        if (navigator.geolocation)
        {
            navigator.geolocation.getCurrentPosition(function(position) {
                alert(position);
                alert(jQuery.stringify(position));
            }, function(error)
            {
                alert("Error occurred. Error code: " + error.code);
            });
        }
    }
    $('#getObj').on('click',function(){
        getObject();
    });
});
</script>
<div>
    <a data-role="button" id="getObj">Get Position Object</a>
</div>

0 个答案:

没有答案