解决Sencha可编辑div,长按不弹出“复制粘贴”
的有关信息介绍如下:
上述可编辑的div,可以代替textarea做一些高级的功能,比如富文本、@好友等。
但是sencha touch框架,在使用ContentEditable的div的时候,长按时却弹不出“复制粘贴”的菜单,这个现象只影响安卓4.4及以上和iOS。
找到文件 "你的sencha项目\touch\src\viewport\Default.js"。
在Ext.viewport.Default类中添加一个函数,如图
isContentEditable:function(node){
returnnode&&node.tagName=='DIV'&&node.contentEditable=="true";
},
找到doBlurInput函数,修改为下面的代码
if(focusedElement&&focusedElement.nodeName.toUpperCase()!='BODY'
&&!this.isInputRegex.test(target.tagName)&&!this.isContentEditable(target)){
deletethis.focusedElement;
focusedElement.blur();
}
doPreventPanning函数,修改为下面的代码
if(this.isInteractiveWebComponentRegEx.test(target.tagName)&&e.touches&&e.touches.length>0){
touch=e.touches;
if(touch&&touch.target&&this.isInputRegex.test(touch.target.tagName)
&&this.isContentEditable(touch.target)){
return;
}
}
if(target&&target.nodeType===1&&!this.isInputRegex.test(target.tagName)
&&!this.isContentEditable(target)){
e.preventDefault();
}
doPreventZooming函数,修改为下面的代码
if(this.isInteractiveWebComponentRegEx.test(target.tagName)&&e.touches&&e.touches.length>0){
touch=e.touches;
if(touch&&touch.target&&this.isInputRegex.test(touch.target.tagName)
&&this.isContentEditable(touch.target)){
return;
}
}
if(target&&target.nodeType===1&&!this.isInputRegex.test(target.tagName)
&&!this.isContentEditable(target)){
e.preventDefault();
}
这样,“复制粘贴”的菜单在长按可编辑DIV的时候,就可以弹出来了。



