JavaScript中的多个按键仅在IE中工作

时间:2012-03-17 02:29:57

标签: javascript

我有以下代码:

function handle_paste_keydown(key)
{   
    if(key.keyCode == 86 && key.ctrlKey) // Ctrl + V
    {
        alert("Test...");
    }
}

这适用于IE,但没有其他浏览器。我这样做的原因是我已经完成了创建一个富文本编辑器,但我需要仔细处理onpaste事件,因为格式化的文本能够进入我的编辑器,这可能对安全性造成轻微的风险,但也如果恶意<span><div> s进入,我会将我的布局进行屠宰。

我目前的方法是将焦点放在屏幕外的textarea上,这意味着所有代码都会被粘贴到那里(这会删除格式化);然后我立即抓住textarea.value并将其插入我的contentEditable <div>中的当前插入位置。

所以,无论如何,如何让Ctrl + V在所有浏览器中工作为什么它不能在当前状态下工作?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果它在IE中有效,但在其他任何地方你都做错了。

使用按键事件而不是keydown。

http://jsfiddle.net/Lxvgr/1/

document.getElementById('foo').onkeypress = function(e) {
    if(e.charCode == 118 && e.ctrlKey) alert('pasted');        
};

@Eric网站:“使用jQuery”不是每个javascript问题的答案。包括一个完整的外部框架来解决像这样简单的4byte问题是荒谬的。