注:发现影响到键盘的使用,不想误导人,所以这个处理保留,后面想到解决方式再记录到这里。
不要吐槽我为什么还用2.9,一个一两天搞定的小工具,去更新后不知道要花多少时间,现有的东西会出什么问题….修复小问题,比折腾新版本妥当点。尝试过找相对近的版本3.x发现都一样。就自己查了下原因解决
这些版本有个问题,虚拟键盘捕获的keycode都为0,而且还出现一些比较奇葩的问题,简单的富文本编辑器里的图片无法删除。
补充个原来先简单应付的删除处理,加了一个按钮,根据获取的光标索引删除内容,现在这个是phonegap里的,其它地方出现的时候,实在不行还是得上。。
$('#edit_note_btn_delete_img') .click( function() { if (window.edit_note_content.window.document .getSelection().focusNode .toString() == '[object HTMLBodyElement]') { var focusOffset = window.edit_note_content.window.document .getSelection().focusOffset; $( window.edit_note_content.window.document.body.childNodes) .eq(focusOffset - 1) .remove() } else { $('body', $edit_note_d).html() } });
http://stackoverflow.com/questions/18093067/cant-delete-image-in-contenteditable-div-on-android/24591285#answer-24591285
解决的代码,参考回答
http://stackoverflow.com/questions/14560344/android-backspace-in-webview-baseinputconnection
org.apache.cordova.CordovaWebView
@Override public boolean deleteSurroundingText(int beforeLength, int afterLength) { // magic: in latest Android, deleteSurroundingText(1, 0) will be called for backspace if (beforeLength == 1 && afterLength == 0) { // backspace return super.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_DEL)) && super.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_DEL)); } return super.deleteSurroundingText(beforeLength, afterLength); }