下面的HTML代码在chrome中运行良好,但在Firefox中,由于在Firefox中未定义Window.event而Chrome有一个事件,因此抛出错误。
<div class="SbmtBtnText" tabIndex="3"
onkeydown="if(window.event.keyCode == 13)this.click();"
onkeyup="if(window.event.keyCode == 27)">
Submit
</div>
解决。
在FireFox中,由于高安全性不允许修改事件,因此没有IE中的全局事件属性。
已解决以下代码
<div class="SbmtBtnText" tabIndex="3" onkeydown="var evt = event ||
window.event; if(evt.keyCode == 13)this.click();" onkeyup="var evt = event
|| window.event; if(evt.keyCode == 27)navClose();">Submitm
</div>
答案 0 :(得分:1)
在Firefox中,您需要使用event参数而不是window.event
。您可以使用以下命令检查浏览器是否发送了事件参数:
var evt = event || window.event;
,并提供:
<div class="SbmtBtnText" tabIndex="3"
onkeydown="var evt = event || window.event; if(evt.keyCode == 13)this.click();"
onkeyup="var evt = event || window.event; if(evt.keyCode == 27)navClose();">
Submitm
</div>
答案 1 :(得分:0)
在Firefox中,没有IE中的全局事件属性。 为了使它适用于IE和Firefox,你需要像这样处理它:
<script type="text/javascript">
function OnKeyDown(evt) {
if(!evt)
evt = window.event;
if(evt.keyCode == 13)
this.click();
}
function OnKeyUp(evt) {
if(!evt)
evt = window.event;
if(evt.keyCode == 27)
navClose();
}
</script>
<div class="SbmtBtnText" tabIndex="3" onkeydown="OnKeyDown();" onkeyup="OnKeyUp();">
Submitm
</div>
答案 2 :(得分:0)
调用javascript函数,如下所示
function keyDown(e) {
var evt = e || window.event;
if(evt.keyCode == 13) {
this.click();
}
}
function keyUp(e) {
var evt = e || window.event;
if(evt.keyCode == 27) {
navClose();
}
}
并将div标签更改为
<div class="SbmtBtnText" tabIndex="3" onkeydown="keyDown();" onkeyup="keyUp();">
Submit
</div>