2015-10-18 41 views
0

短篇小說:如何從JavaScript模擬在CKEditor的DEL按鍵

// 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

我在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的簡單的解決方案。

0

我覺得你想要一些線索......

在那裏,它是...查看文檔

Key Event in CKEditor

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