1

我正在 IE 中为内容可编辑 div 中使用的特殊功能创建 Rangy 节点。试图使其尽可能全球化,因此有很多关键处理代码,以确保它正确处理所有各种字符、语言和 IME。函数中有一个 if 语句,它在一系列“或”中具有一个条件“e.charCode”,为其输入 if 语句。在 IE 上,charCode 是未定义的,但只有在键入挪威字符 å (alt + 134) 时,charCode 才对该字符有效。这会抛出所有内容并完全删除文本框中的 Rangy 节点,并使进一步的输入无响应。

我的问题是为什么 å 字符的行为与我尝试过的所有其他 ASCII 扩展字符不同?还有其他与我应该知道的问题类似的日耳曼语特殊情况吗?

4

1 回答 1

0

对于这样的事情,您需要Javascript Key Event Test Script。这是一个简单的网页,仅向您显示哪些值在哪个事件字段中。这样,您就可以看到代码的输入。

我的猜测是,当您在测试页面中输入 å 时,您不会发现任何异常之处。

下一步是编写创建合成事件的单元测试,并通过您的代码提供这些事件以确保其行为正确。

我知道在没有单元测试的情况下这样做是很诱人的。但是随着时间的推移,代码变得太复杂而无法理解,并且真正奇怪的错误(如您所描述的错误)悄悄出现。

于 2013-09-16T15:11:18.430 回答