我有以下代码:
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在所有浏览器中工作和为什么它不能在当前状态下工作?
谢谢。
答案 0 :(得分:0)
如果它在IE中有效,但在其他任何地方你都做错了。
使用按键事件而不是keydown。
document.getElementById('foo').onkeypress = function(e) {
if(e.charCode == 118 && e.ctrlKey) alert('pasted');
};
@Eric网站:“使用jQuery”不是每个javascript问题的答案。包括一个完整的外部框架来解决像这样简单的4byte问题是荒谬的。