短篇小说:
// get the editor instance
var editor = CKEDITOR.instances.editor1;
// this is what I want, but it does not exist
editor.execCommand('delete');
// I've played with this, found somewhere, but without success.
editor.fire('key', { keyCode : 46 } )
长篇故事:
在.NET WindowsForms的Webbrowser控件中使用CKEditor时出现问题。包括DELete键在内的几个键根本不会传播到控件。
我设法使用全局键盘钩子截取密钥并将窗口消息直接发送到嵌入式IE窗口句柄,但没有成功。
现在我的目标是在javascript中模拟删除键,因为我可以从我的.NET应用程序中调用js函数。 不知何故,这必须起作用,因为它可以在虚拟键盘插件中运行。 (见sample)
可悲的是,我无法从插件代码中了解其工作原理。 如果有人能发布工作样本,我会很高兴。
谢谢!
答案 0 :(得分:0)
我找到了javascript虚拟键盘中使用的库(Jsvk plugin) 它被称为DocumentSelection,可以找到here。
<script src="./documentselection.js"></script>
function simulateDelete()
{
var editor = CKEDITOR.instances.editor1;
var container = (editor.container.getElementsByTag('textarea').getItem(0) ||
editor.container.getElementsByTag('iframe').getItem(0)
).$;
DocumentSelection.deleteAtCursor(container, true);
}
也许某人有一个更简单的解决方案,而无需外部libaray。
答案 1 :(得分:0)
我想你想要一些线索......
有......检查文档
alert( event.getKey() );
获取关键元素,另一个是
alert( event.getKeystroke() == 65 );// "a" key
alert( event.getKeystroke() == CKEDITOR.CTRL + 65 );// CTRL + "a" key
alert( event.getKeystroke() == CKEDITOR.CTRL + CKEDITOR.SHIFT + 65 );//CTRL + SHIFT + "a" key