我正在使用.replace() - Method来替换HTML内容。我需要替换前面的元素,所以我使用了这个函数的返回值。在IE8中,这会在特定情况下返回一个空字符串(我无法提供示例,因为该脚本不是独立的)。
我做了一些研究,发现IE8在第2770行(Prototype 1.7)中调用了Element.Methods.replace,其中Mozilla在第2059行调用了“replace”。
Element.Methods.replace做了一些事情,最后将原始元素outerHTML替换为以某种方式被剥离的新内容(第2791行)。
最后在我看来它返回了应该被替换的原始元素,但是已经使用第2791行中的新内容进行了修改,它变成了一个空字符串。
所以我基本上有两个问题:
为了进一步挖掘为什么会发生这种情况,有人可以解释何时调用此方法? IE似乎没有在每次replace()调用时触发它。
我觉得这个函数返回修改后的原始元素而不是只返回原始元素似乎是错误的。这是预期的行为吗?