`
CN.Silva...
  • 浏览: 48459 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
社区版块
存档分类
最新评论

兼容多种浏览器的Ctrl+Enter提交--兼容firefox、ie、opera

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<script type="text/javascript">
function isKeyTrigger(e,keyCode){
    var argv = isKeyTrigger.arguments;
    var argc = isKeyTrigger.arguments.length;
    var bCtrl = false;
    if(argc > 2){
        bCtrl = argv[2];
    }
    var bAlt = false;
    if(argc > 3){
        bAlt = argv[3];
    }

    var nav4 = window.Event ? true : false;

    if(typeof e == 'undefined') {
        e = event;
    }

    if( bCtrl &&
        !((typeof e.ctrlKey != 'undefined') ?
            e.ctrlKey : e.modifiers & Event.CONTROL_MASK > 0)){
        return false;
    }
    if( bAlt &&
        !((typeof e.altKey != 'undefined') ?
            e.altKey : e.modifiers & Event.ALT_MASK > 0)){
        return false;
    }
    var whichCode = 0;
    if (nav4) whichCode = e.which;
    else if (e.type == "keypress" || e.type == "keydown")
        whichCode = e.keyCode;
    else whichCode = e.button;

    return (whichCode == keyCode);
}

function ctrlEnter(e){
    var ie =navigator.appName=="Microsoft Internet Explorer"?true:false;
    if(ie){
        if(event.ctrlKey && window.event.keyCode==13){doSomething();}
    }else{
        if(isKeyTrigger(e,13,true)){doSomething();}
    }
}
function doSomething(){alert('Ctrl+Enter being Pressed.'); }
</script>
<textarea name="message" onkeyup="javascript:return ctrlEnter(event);">Ctrl+Enter Submit test</textarea>
</body>
</html>

分享到:
评论

相关推荐

    js键盘事件参考学习_兼容FireFox和IE

    事件对象`event`在`keydown`、`keypress`和`keyup`中具有通用属性,如`altKey`、`ctrlKey`和`shiftKey`,它们指示是否有Alt、Ctrl或Shift键与其他键一起被按下,这些属性在Firefox和IE中都可用。 **第二部分:兼容...

    javascript 按键事件(兼容各浏览器)

    以FireFox和Opera(基于Mozilla内核)和Internet Explorer(以及基于IE内核的Maxthon)为例,介绍不同浏览器中事件处理函数的差异。在FireFox和Opera中,需要使用事件对象e,并通过e.which来获取按键的索引值。然后...

    artDialog非常漂亮的弹窗JS库

    artDialog是一个精巧的web对话框组件,压缩后只有十多KB,并且不依赖其他...兼容:IE6+、Firefox、Chrome、Safari、Opera,浏览器版本越高体验越好。并且IE6下也能支持现代浏览器的静止定位(fixed),支持覆盖下拉控件。

    artDialog_Demo

    12、修复Firefox调大对话框拖帧的现象 13、修复拖动对话框时候可能因鼠标置入iframe窗口而导致鼠标被粘住的问题 14、修复了内部$.newId方法的一处错误,特定情况下导致定义了ID的对话框无法弹出 15、删除脚本对...

    javascript键盘事件[定义].pdf

    JavaScript 在不同浏览器中可能存在差异,特别是 IE 和基于 Mozilla 内核的浏览器(如 Firefox 和 Opera)。在初始化键盘事件监听时,IE 使用 `document.onkeydown = keyDown`,而 Firefox 和 Opera 需要通过事件...

Global site tag (gtag.js) - Google Analytics