onKeyPress事件不能在Firefox中使用 [英] onKeyPress event not working in Firefox

查看:124
本文介绍了onKeyPress事件不能在Firefox中使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下javascript代码...在这里,我正在使用 onKeyPress =someFunction()在身体标记获取按键的keyCode。 b
$ b

这个代码在IE8中工作正常,但是这个功能在Firefox中不起作用。

解决方案。

 < html> 
< head>
< title> onKeyPress()事件在firefox中不起作用。< / title>
< script>
函数printDiv()
{
var divToPrint = document.getElementById('prnt');
newWin = window.open(''+ self.location,'PrintWin','left = 50,top = 20,width = 590,height = 840,toolbar = 1,resizable = 1,scrollbars = yes' );
newWin.document.write(divToPrint.outerHTML);
newWin.print();
//newWin.close();
}
< / script>

< script>
function keypress()
{
alert(event.keyCode);
var key = event.keyCode;
if(key == 112 || key == 80)
printDiv();
else if(key == 101 || key == 69)
window.location =http://google.com;
else if(key == 114 || key == 82)
window.reset();
}
< / script>
< / head>
< body bgcolor =lightblueonkeypress =keypress()>

预先感谢.....

< hr>

下面是在IE8中正常工作,而不是在Firefox中工作的总代码。



 <!DOCTYPE html> 
< html>
< head>
< title>请帮我解决< / title>
< script type =text / javascript>
函数printDiv()
{
var divToPrint = document.getElementById('prnt');
newWin = window.open(''+ self.location,'PrintWin','left = 50,top = 20,width = 590,height = 840,toolbar = 1,resizable = 1,scrollbars = yes' );
newWin.document.write(divToPrint.outerHTML);
newWin.print();
}
< / script>

< script type =text / javascript>
function keypress(val)
{
// ------------------------------ -----------------------
// alert('nnnn');
//alert(windowow.event?event.keyCode:val.which);
//if(val.which!= 0&& val.charCode!= 0)
// alert('Firefox'+ String.fromCharCode(val.which));
// else
// alert('IE');
// -------------------------------------------- -----------
var key = event.keyCode;
if(key == 112 || key == 80 || val ==print)
printDiv();
else if(key == 101 || key == 69 || val ==exit)
window.location =http://google.co.in;
else if(key == 114 || key == 82 || val ==refresh)
document.forms [0] .reset();
else
event.returnValue = true;
}
< / script>
< / head>
< body bgcolor =lightbluetopmargin =0leftmargin =0marginwidth =0pxmarginheight =0pxonkeypress =keypress(null)>
< table align =leftborder =1cellpadding =5cellspacing =0style =width:100%; height:100%>
< tbody>
< tr>< td width =20%valign =top> ccccccccccc< / td>
< td width =80%align =center>
< table style =width:100%border =0valign =top>
< tr align =right>
< td valign =top>
< buttonpress =refreshaccesskey =Ronclick =keypress(this.value)>
< b>< u> r< />< / b> efresh
< / button>
< button value =printaccesskey =Ponclick =keypress(this.value)>
& nbsp;& nbsp;< b>< u> p< / u>< / b> rint& nbsp;& nbsp;
< / button>
< button value =exitaccesskey =Eonclick =keypress(this.value)>
& nbsp;& nbsp;< b>< u> e< / u>< / b> xit& nbsp;& nbsp; 
< / button>
< / td>< / tr>
< / table>
< h3>按字母P->打印,E->退出等....< / h3>
< h1>只要按键事件< / h1>的测试,
< form action =http://google.co.inmethod =Post>
< div id =prnt>
zzzzzzzzzzzzzzz
< / div>
< / form>
< / td>
< / tr>
< / tbody>
< / table>< / body>< / html>


解决方案

当这样的问题出现时,我开始使用任何类型的JavaScript框架。构建这些框架是为了避免不同浏览器出现问题。

要捕获所有不同的 keypress() apis,就像Emmett所示的链接一样,可能非常困难。

示例:

b

 < script src =http://code.jquery.com/jquery-1.4.4.js>< / script> 

在JS标签中:

<$ p $ ($)$($)$($)$($)$($)$ });


I have the following javascript code...Here I am using onKeyPress="someFunction( )" in the body tag to get the keyCode of the key that is pressed.

The code is working fine in IE8 but this is not working in Firefox.

Please give some solution to this.

<html>
<head>
<title>onKeyPress( ) event not working in firefox..</title>
<script>
function printDiv()
{
  var divToPrint=document.getElementById('prnt');
  newWin=window.open(''+self.location,'PrintWin','left=50,top=20,width=590,height=840,toolbar=1,resizable=1,scrollbars=yes');
  newWin.document.write(divToPrint.outerHTML);
  newWin.print();
  //newWin.close();
}
</script>

<script>
function keypress()
{
  alert(event.keyCode);
  var key=event.keyCode;
  if(key==112 || key==80)
 printDiv();
  else if(key==101 || key==69)
    window.location="http://google.com";
  else if(key==114 || key==82)
    window.reset();  
}
</script>
</head>
<body bgcolor="lightblue" onkeypress="keypress()">

Thanks in advance.....


Here is the total code which is working fine in IE8 and not working in Firefox.

<!DOCTYPE html>
<html>
    <head>
    <title>Please help me out</title>
    <script type="text/javascript">
    function printDiv()
    {
      var divToPrint=document.getElementById('prnt');
      newWin=window.open(''+self.location,'PrintWin','left=50,top=20,width=590,height=840,toolbar=1,resizable=1,scrollbars=yes');
      newWin.document.write(divToPrint.outerHTML);
      newWin.print();
    }
    </script>

    <script type="text/javascript">
    function keypress(val)
    {
      //-----------------------------------------------------   
      //alert('nnnn');
      //alert(window.event ? event.keyCode : val.which);  
      //if(val.which != 0 && val.charCode != 0)
      // alert('Firefox'+String.fromCharCode(val.which));
      //else
      // alert('IE'); 
      //------------------------------------------------------- 
      var key=event.keyCode;
      if(key==112 || key==80 || val=="print")
        printDiv();
      else if(key==101 || key==69 || val=="exit")
        window.location="http://google.co.in";
      else if(key==114 || key==82 || val=="refresh")
        document.forms[0].reset();  
      else
        event.returnValue=true;
    }
    </script>
</head>
<body bgcolor="lightblue" topmargin="0" leftmargin="0"marginwidth="0px" marginheight="0px" onkeypress="keypress(null)">
<table align="left" border="1" cellpadding="5" cellspacing="0" style="width: 100%;height:100%">
<tbody>
<tr><td width="20%" valign="top">ccccccccccc</td>
    <td width="80%" align="center">
        <table style="width: 100%" border="0" valign="top">
        <tr align="right">
        <td valign="top">
        <button value="refresh" accesskey="R" onclick="keypress(this.value)">
            <b><u>R</u></b>efresh
        </button>
        <button value="print" accesskey="P" onclick="keypress(this.value)">
            &nbsp;&nbsp;<b><u>P</u></b>rint&nbsp;&nbsp;
        </button>
        <button value="exit" accesskey="E" onclick="keypress(this.value)">
            &nbsp;&nbsp;&nbsp;<b><u>E</u></b>xit&nbsp;&nbsp;&nbsp;
        </button>
        </td></tr>
        </table> 
        <h3>Press the letters P->Print , E->Exit etc....</h3>   
        <h1>Just a test for keypress event</h1>
        <form action="http://google.co.in" method="Post">
            <div id="prnt">
                zzzzzzzzzzzzzzz
            </div>
        </form>
    </td>
</tr>
</tbody>
</table></body></html>

解决方案

When problems like this show up, I start to use any kind of a JavaScript framework. Those frameworks are build to avoid problems with different browsers.

To catch all different keypress() apis, like the link from Emmett shows, can be very difficult.

Example:

In HTML head:

<script src="http://code.jquery.com/jquery-1.4.4.js"></script>

In the JS tag:

$(document).keydown(function(event) {
 alert('You pressed '+event.keyCode);
 event.preventDefault();
});

这篇关于onKeyPress事件不能在Firefox中使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆