JSON stringify игнорирует параметры в разных вкладках одного и того же браузера - PullRequest
1 голос
/ 13 июня 2019

Мне нужно украсить существующее представление через скрипт пользователя (TamperMonkey). Код работает в JSFiddle (см. http://jsfiddle.net/2phrogm5/),, но не там, где мне это нужно: внутри веб-интерфейса Zabbix.

Чтобы повторить проблему:

JSON.stringify({"asd": {"asd": 3}}, null, 4)

Ожидаемый результат:

"{
    "asd": {
        "asd": 3
    }
}"

Мой вывод:

"{"asd":{"asd":3}}"

Проблема не существует с помощью инструментов разработчика на https://stackoverflow.com/.

Я уже попробовал решение, предоставленное в причудливости массива JSON.stringify () с Prototype.js , но безуспешно.

1 Ответ

0 голосов
/ 17 июня 2019

Глядя на исходный код веб-интерфейса Zabbix, вы можете увидеть, где метод перезаписан:

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/

...