是否有任何事件可以告诉我IE已经完成了它满意的动作?
Is there any event can tell me that IE has finished its contenteditable action?
我正在研究一个基于contenteditable
的文本编辑器,试图修改IE的可满足的行为。
例如:当按回车
时插入<br />
不是一个新的<p>
元素我发现IE在输入时完成了keyup
和keydown
之间的满足行为。因此,我可以在这两个事件触发时添加修改。
但是当来到Paste
时,它不起作用。
的情况是:我想粘贴一个包含几个段落的文本块,像这样
paragraph 1
another paragraph
and so on
IE会自动在新的<p>
标签中嵌入段落。例如,如果我想将class
添加到这些<p>
元素中,我需要知道这些元素是何时创建的。
我试过onpaste
, nodeInserted
。他们在改变发生之前就解雇了。IE完成它的工作后是否有任何事件被触发??
我一直在使用按键事件检测它。如果我没记错的话,您可以从输入参数中获得按下的键和修饰符,以检测Ctrl+v
编辑显然不是,我刚查过了。JQuery使用'paste'事件。
HTML<p id="cont" contenteditable="true">This is an editable paragraph.</p>
Javascript $("#cont").keypress(function() {
console.log("Keypress " + Math.random());
});
$("#cont").bind('paste', function(e){
console.log("Paste " + Math.random());
});
小提琴在这里:http://jsfiddle.net/3djRp/3/
EDIT2 我借用了别人的事件组合在内容改变后检测粘贴,但在某些浏览器中它会触发两次。
$cont = $("#cont");
$cont.data('oldval', $cont.text());
//console.log($cont.data('oldval'));
$cont.bind("propertychange input keyup paste", function(event){
if($cont.data('oldval') != $cont.text()) {
//console.log("old " + $cont.data('oldval'));
//console.log("new " + $cont.text());
$cont.data('oldVal', $cont.text());
console.log('change: ' + $cont.text());
}
});
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- 是否有任何事件可以告诉我IE已经完成了它满意的动作?
- 如何使用“满意”的值更新“满意的2”;与“keyup"事件