假设您有一个脚本需要在覆盖javascript的JSON的页面上运行。 stringify,你如何确保你的代码使用原始字符串而不是被覆盖的字符串?
答案 0 :(得分:3)
如果要创建库,请JSON.stringify
符合标准行为。
对代码提出严格要求并没有错,实际上这是一个好主意。您只需要确保记录要求。
显然,如果原件被永久覆盖,则无法使用它。将负担放在最终用户身上是一个更好的解决方案。
如果这不是针对某个库,而是针对个人项目,那么您应该简单地拒绝加载任何第三方代码,这些代码执行的操作与将不符合方法替换为符合标准的方法一样愚蠢。
答案 1 :(得分:3)
虽然我会选择其中一个其他答案,但以下是针对以下情况的解决方案:
这是一个黑客攻击:
contentWindow
属性;这应该包含原始(或“一个新的未触动的”)JSON对象,从而包含原始的JSON.stringify函数。答案 2 :(得分:1)
在覆盖JSON.stringify
之前对其进行备份。如果您无法对其进行备份,请使用a shiv。