我正在使用IE创建Rangy节点,以获得内容可编辑div中使用的特殊功能。尝试使其尽可能全局,因此有许多密钥处理代码,以确保它正确处理所有各种字符,语言和IME。函数中有一个if语句,在输入if语句的一系列“或”中有一个条件“e.charCode”。在IE上,charCode是未定义的,但只有在键入挪威字符å(alt + 134)时,charCode实际上对该字符有效。这会抛弃所有内容并在文本框中完全删除Rangy节点,并使进一步的输入无法响应。
我的问题是为什么å字符的行为与我尝试过的每个其他ASCII扩展字符的行为不同?对于日耳曼语言是否有其他特殊情况与我应该了解的这个问题类似?
答案 0 :(得分:0)
对于这样的事情,你需要Javascript Key Event Test Script。这是一个简单的网页,只显示哪些值在哪个事件字段中。这样,您就可以看到代码的输入。
我的猜测是,当您在测试页面中输入时,您将找不到任何例外情况。
下一步是编写创建合成事件的单元测试,并通过代码提供这些事件,以确保其行为正确。
我知道没有单元测试这样做非常诱人。但是随着时间的推移,代码变得太复杂而无法理解,而且奇怪的错误(就像你描述的那样)也会陷入困境。