pal*_*ogt 7 javascript json cross-browser
我无法控制的一些代码是覆盖全局JSON对象而不检查它是否已经实现:
var JSON = {
org: "http://www.JSON.org",
copyright: "(c)2005 JSON.org",
license: "http://www.crockford.com/JSON/license.html",
stringify: function(a, g) {
...
Run Code Online (Sandbox Code Playgroud)
问题是这个版本的JSON解析器非常老,并且有一个bug,这会影响我的序列化尝试.(其他人对此实现也有类似的问题.)
我可以使用浏览器的本机实现吗?我认为删除会起作用,但事实并非如此.我怀疑那是因为JSON是一个对象,而不是原型中的方法.还有其他方法可以实现吗?
gsn*_*ers 10
您可以创建一个iframe元素(将加载about:blank并因此创建新的上下文)并从那里获取JSON对象.
function restoreJSON() {
var f = document.createElement("iframe");
f.style.display = "none";
document.documentElement.appendChild(f);
window.JSON = f.contentWindow.JSON;
document.documentElement.removeChild(f);
}
Run Code Online (Sandbox Code Playgroud)
about:blank同步加载,因此无需等待load事件.虽然这不是恢复原始JSON对象,但它会得到一个与之相同的黑盒子.
| 归档时间: |
|
| 查看次数: |
772 次 |
| 最近记录: |