【发布时间】:2011-08-03 11:40:50
【问题描述】:
我正在开发一个使用 HTTP 在 LAN 内运行良好的 Web 应用程序,但是当我通过 SSL 对其进行远程测试时,它在 IE(7 和 8)中失败。 Firefox、Camino 和 Safari 都可以完美运行。
我已将问题追溯到 key 未定义。相关的代码是:
function showResult(e,str,num) {
var key = (window.Event) ? e.which : e.keyCode;
if(((key > 32 && key < 58) || (key > 64 && key < 91) || (key > 95 && key < 123)) && (str.length >= num)) {
关于为什么key 在 SSL 上的 IE 未定义但在 HTTP 上可以正常工作的任何线索?更好的是,有人能告诉我如何克服这个问题吗? FWIW,我不需要在版本 7 之前支持 IE。
更新:
有一个答案建议更换
var key = (window.event) ? e.which : e.keyCode;
与
var key;
e = e || window.event;
key = e.keyCode || e.which;
这行得通。现在的问题是我不能接受那个答案,因为它已经被删除了。
【问题讨论】:
-
console.log(window.Event)包含什么内容? -
您确定要将事件对象传递给此函数吗?在 IE 中断言
e == window.event。
标签: javascript http ssl https keycode