兼容性问题:
1、<body onbeforeunload = "alert('准备退出');"  onunload = "alert('退出');">
</body>这段代码在IE和火狐下都可以正常使用。但我用360浏览器(多标签页模式),关掉页面(即当前标签页)时,没有弹出框,只有再刷新页面的时候才能正常弹出。2、<body oncontextmenu="alert(1);">
</body>在火狐下不起作用。3、<body onselectstart="alert(1);">
    aaaaaaaaaaa
</body>还是火狐下不起作用4、<input type="text" onfocus="alert(1);" onblur="alert(2);"  />这个就比较怪了,在IE下很正常,在火狐下是当表单获得焦点时,直接弹出2和1两个框,在360下是当获取焦点时一直弹出1,死循环了。。5、onkeydown和onkeypress有什么区别呢?什么时候用哪个?在网上查了好多,但都太概念化了不好理解~
谢谢!!

解决方案 »

  1.   

    onkeydown:Script to be run when a key is pressed down
    onkeypress:Script to be run when a key is pressed and released
      

  2.   


    alert弹出框的时候就已经失去焦点到弹出框了,点击确定又回到焦点再次触发onfocus
    onfocus onblur最好不要一起做弹窗操作,里面调方法也是,不然不知不觉就可能撑死循环了,要不现在信息验证都喜欢在框后边显示呢
      

  3.   

    改用console.log('...')或者其他方式throw('...')方式
      

  4.   

    不要用 alert 来测试不同浏览器,本来就有区别,看看js 浏览器兼容的 相关文章吧。网上很多。