我希望能夠抓住CKeditor中的圖像對話框時,從URL文本輸入字段獲取onfocus事件。劫持CKeditor輸入字段
我試着爲元素(id#cke_75_textInput)添加一個事件處理程序,但它只在點擊了Image按鈕後纔出現在DOM中。
查看了CKEditor 3 JavaScript API文檔,在這裏,我一直在掙扎,找不到我需要的東西。
這可以通過API來完成嗎?
我希望能夠抓住CKeditor中的圖像對話框時,從URL文本輸入字段獲取onfocus事件。劫持CKeditor輸入字段
我試着爲元素(id#cke_75_textInput)添加一個事件處理程序,但它只在點擊了Image按鈕後纔出現在DOM中。
查看了CKEditor 3 JavaScript API文檔,在這裏,我一直在掙扎,找不到我需要的東西。
這可以通過API來完成嗎?
有沒有必要做一些魔術焦點代表團(這是一個混亂,因爲重點沒有泡沫)。只需使用CKEditor API:
CKEDITOR.on('dialogDefinition', function(evt) {
if (evt.data.name == 'image') {
var def = evt.data.definition;
var onShow = def.onShow;
def.onShow = function() {
onShow && onShow.apply(this, arguments);
var input = this.getContentElement('info', 'txtUrl');
console.log(input.getValue());
input.on('focus', function() {
console.log('focused');
});
};
}
});
PS。 CKE4的文檔比老CKE3的文檔更少 - http://docs.ckeditor.com/#!/api/CKEDITOR.dialog
這非常出色,但需要一些工作才能看到你從文檔中得到了什麼。 – Galadai 2013-05-11 17:35:59
每個CKEditor包中都有一個[dialog API sample](http://ckeditor.com/latest/samples/plugins/dialog/dialog.html),[示例插件指南](http://docs.ckeditor.com/ #!/ guide/plugin_sdk_sample_1)以及我在答案中鏈接的API文檔。它需要一些時間來編譯所有這些,但所有這些都在官方文檔中。我的答案中唯一棘手的部分是如何獲取對話框實例。我重寫了對話框定義的'onShow'方法,但我認爲更簡單的解決方案可能(或應該)存在。 – Reinmar 2013-05-11 18:30:26
您不會碰巧使用jQuery,對不對?它可以幫助將該事件與代表團進行綁定。基本的JavaScript將會有更多的問題,因爲焦點事件冒泡問題 – Ian 2013-05-10 13:32:30
看看[關於quirksmode的這篇小文章](http://www.quirksmode.org/blog/archives/2008/04/delegating_the .html)關於捕獲'focus','change'和其他非冒泡事件。除非你可以使用jQuery,否則這將是我的建議。 – Kiruse 2013-05-10 13:34:05
我正在使用jQuery。這是如何使它更容易? – Galadai 2013-05-10 14:30:27