JSON stringify 忽略同一浏览器不同选项卡中的参数
JSON stringify ignoring parameters in different tabs same browser
我需要通过用户脚本 (TamperMonkey) 美化现有视图。该代码在 JSFiddle 中有效(参见 http://jsfiddle.net/2phrogm5/),但不在我需要的地方:在 Zabbix Web 界面中。
重现问题:
- 打开the public demo
- 按 F12 打开开发者工具
- 插入
JSON.stringify({"asd": {"asd": 3}}, null, 4)
预期结果:
"{
"asd": {
"asd": 3
}
}"
我的输出:
"{"asd":{"asd":3}}"
在 https://whosebug.com/ 上使用开发者工具不存在此问题。
我已经尝试了 JSON.stringify() array bizarreness with Prototype.js 中提供的解决方案,但没有成功。
查看Zabbix web界面源码,可以看到方法被覆盖的地方:
zabbix-software$ egrep -iR "JSON.stringify *="
frontends/php/jsLoader.php: 'var _json_stringify = JSON.stringify;'.
frontends/php/jsLoader.php: 'JSON.stringify = function(value) {'.
原始功能仍然可用,只是名称不同:_json_stringify()
。更新后的 jsfiddle 是 http://jsfiddle.net/u7r8q19g/
更新
在 Zabbix 5 中,他们把东西放回原处或者帮助我,所以现在我正在做:
if (typeof _json_stringify === "function") {
item.html(_json_stringify(JSON.parse(text), undefined, 4))
} else {
item.html(JSON.stringify(JSON.parse(text), undefined, 4))
}
感谢 How to tell if a JavaScript function is defined
我需要通过用户脚本 (TamperMonkey) 美化现有视图。该代码在 JSFiddle 中有效(参见 http://jsfiddle.net/2phrogm5/),但不在我需要的地方:在 Zabbix Web 界面中。
重现问题:
- 打开the public demo
- 按 F12 打开开发者工具
- 插入
JSON.stringify({"asd": {"asd": 3}}, null, 4)
预期结果:
"{
"asd": {
"asd": 3
}
}"
我的输出:
"{"asd":{"asd":3}}"
在 https://whosebug.com/ 上使用开发者工具不存在此问题。
我已经尝试了 JSON.stringify() array bizarreness with Prototype.js 中提供的解决方案,但没有成功。
查看Zabbix web界面源码,可以看到方法被覆盖的地方:
zabbix-software$ egrep -iR "JSON.stringify *="
frontends/php/jsLoader.php: 'var _json_stringify = JSON.stringify;'.
frontends/php/jsLoader.php: 'JSON.stringify = function(value) {'.
原始功能仍然可用,只是名称不同:_json_stringify()
。更新后的 jsfiddle 是 http://jsfiddle.net/u7r8q19g/
更新
在 Zabbix 5 中,他们把东西放回原处或者帮助我,所以现在我正在做:
if (typeof _json_stringify === "function") {
item.html(_json_stringify(JSON.parse(text), undefined, 4))
} else {
item.html(JSON.stringify(JSON.parse(text), undefined, 4))
}
感谢 How to tell if a JavaScript function is defined