我对 chrome 和 tinymce 有疑问。要将焦点设置到编辑器中,我会:
tinyMCE.getInstanceById('my_editor_id').focus();
它在 FF 和 IE 中运行良好。为什么不用镀铬?
这根本不起作用:
tinymce.execCommand('mceFocus', false, 'my_editor_id');
还有其他建议吗?
我对 chrome 和 tinymce 有疑问。要将焦点设置到编辑器中,我会:
tinyMCE.getInstanceById('my_editor_id').focus();
它在 FF 和 IE 中运行良好。为什么不用镀铬?
这根本不起作用:
tinymce.execCommand('mceFocus', false, 'my_editor_id');
还有其他建议吗?
尝试类似:
setup: function(ed){
ed.onInit.add(function(ed){
$(ed.getDoc()).contents().find('body').focus(function(){tinymce_focus();});
});
}
以下解决方案对我有用。我创建了一个引起焦点的焦点事件侦听器。我不确定这是否会创建一个无限循环,但它可以正常工作。
// Chrome Hack
var addEvent = function(node,eventName,func){
if ("undefined" == typeof node || null == node) {
} else {
if (!node.ownerDocument.addEventListener && node.ownerDocument.attachEvent) {
node.attachEvent('on' + eventName, func);
} else node.addEventListener(eventName,func,false);
}
};
var cur = ed.dom.select('textarea'); // select all tinymce textareas
for(var idx=0;idx<cur.length;idx++) {
addEvent(cur[idx],'focus',function(evt) {
evt = evt ? evt : window.event;
evt.target.focus();
return true;
});
}