参考答案: How to use TinyMCE functions on text without actually selecting that text?
我意识到了
$('#TAID_ifr').contents().find('html').bind('keypress', function(e){return false;});
不适用于回车键。当用户点击“输入”时,形成换行符。但是对于所有其他密钥,代码按预期工作,即没有任何反应。输入需要一些特殊处理吗?我添加了下面的代码,但它没有什么区别:
var code = e.keyCode || e.which;
if (code == 13) e.preventDefault();
怎么了?当用户点击“输入”时,我不希望插入新行,我不希望发生任何事情。
这是否无效,因为在iframe中按了enter
键?
答案 0 :(得分:4)
是的,这是可能的。 Tinymce使用自己的事件管理。
有tinymce event名为onKeyDown
。使用setup configuration parameter您可以使用此活动:
// Adds an observer to the onKeyDown event using tinyMCE.init
tinyMCE.init({
...
setup : function(ed) {
ed.onKeyDown.add(function(ed, event) {
if (event.keyCode == 13) {
event.preventDefault();
event.stopPropagation();
return false;
}
});
}
});
请注意,由于不同浏览器中的实现不同,此处使用了几个语句来停止代码的传播。
答案 1 :(得分:0)
请尝试以下代码:
$('#TAID_ifr').keypress(function(event){
if (event.keyCode == 10 || event.keyCode == 13) {
event.preventDefault();
}
});
答案 2 :(得分:0)
在TinyMce 4.x中,使用以下代码段,如文档here所述:
// Adds an observer to the onKeyDown event using tinyMCE.init
tinymce.init({
...
setup : function(ed) {
ed.on('KeyDown', function(event) {
if (event.keyCode == 13) {
event.preventDefault();
event.stopPropagation();
return false;
}
});
}
});