我正在使用此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>