2
在工作中,我們有一個彈出對話框系統,我想用它來編輯CKEditor中的一個控件的內容。有什麼辦法可以解決這個問題嗎?集成外部對話框與CKEditor Widgets
CKEditor是否有調用外部的方法並獲取Widget上的回調設置值?
我都沒有成功:(
在工作中,我們有一個彈出對話框系統,我想用它來編輯CKEditor中的一個控件的內容。有什麼辦法可以解決這個問題嗎?集成外部對話框與CKEditor Widgets
CKEditor是否有調用外部的方法並獲取Widget上的回調設置值?
我都沒有成功:(
當小部件被編輯(在其初始化,上雙擊,上輸入當widget.edit()
方法被調用),那麼widget#edit
事件現在GOOGLE了它相當長的一段。被解僱了widget.edit
方法裏面的代碼的開始是這樣的:
edit: function() {
var evtData = { dialog: this.dialog };
// Edit event was blocked or there's no dialog to be automatically opened.
if (this.fire('edit', evtData) === false || !evtData.dialog)
return false;
...
}
這意味着,如果事件被取消或沒有對話框名在widget.definition
設定(你的情況,我猜),然後經過該事件被解僱,什麼都不會發生。
因此,要開始,聽取widget#edit
事件並顯示您的對話框。然後,當用戶按下「確定」按鈕時使用widget.setData()
。在做任何更改之前和之後,您還需要觸發editor#saveSnapshot
事件。
此外,請閱讀widget.repository#finalizeCreation
方法的文檔,該方法可讓您處理小部件創建。
感謝您的回覆,它看起來很有希望。我將如何去聽小部件#編輯事件?我很難趕上它。 –
您可以將偵聽器添加到您的小部件的'init'回調中的'edit'事件。這是最方便的方法。如果由於某些原因需要從「外部」執行此操作,則可以在'editor.widgets#instanceCreated'上偵聽,然後添加該偵聽器。 – Reinmar
好的,感謝您的幫助:) –