我有一個創建tinymce編輯器的自定義元素(Aurelia等同於Web組件)。沒有辦法通過使用選擇器來選擇textarea(因爲在頁面上可以存在任意數量的這些自定義元素)。我需要通過傳遞元素對象來初始化tinymce實例。有這種可能嗎?我無法在任何地方找到此功能...將tinymce編輯器添加到元素對象而不是選擇器
在此先感謝。
我有一個創建tinymce編輯器的自定義元素(Aurelia等同於Web組件)。沒有辦法通過使用選擇器來選擇textarea(因爲在頁面上可以存在任意數量的這些自定義元素)。我需要通過傳遞元素對象來初始化tinymce實例。有這種可能嗎?我無法在任何地方找到此功能...將tinymce編輯器添加到元素對象而不是選擇器
在此先感謝。
對不起,我有點晚了。我有這個完全相同的問題。我使用了一個Angular指令,並且我想在$element
上初始化TinyMCE。事實證明,你可以使用這個語法:
var element = getYourHTMLElementSomehow();
//...
tinymce.init({
target: element
});
所以你不使用selector
可言,而是使用target
。
我不得不在源代碼中尋找它,因爲它似乎沒有明確記錄在任何地方。
由於TinyMCE似乎要求您使用選擇器,並且不會讓您只傳遞一個元素實例(並且開發人員似乎無法根據其論壇響應掌握此用例的效用),但是,最好的辦法是做這樣的事情:
查看
<template>
<textarea id.one-time="uniqueId" ...other bindings go here...></textarea>
</template>
視圖模型
export class TinyMceCustomElement {
constructor() {
this.uniqueId = generateUUID();
}
attached() {
tinymce.init({
selector: `#${this.uniqueId}`,
inline: true,
menubar: false,
toolbar: 'undo redo'
});
}
}
function generateUUID() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
return v.toString(16);
});
}
我的UUID功能來自這裏:Create GUID/UUID in JavaScript?
請注意,我已將'activate'更改爲'attach' b/c我經常將該回調名稱錯誤。 'attach'是你想要的回調。 –
如果沒有您正在使用的DOM結構的示例,我們無法開始幫助您。請[參觀],環顧四周,並仔細閱讀[幫助],尤其是[*我如何提出一個好問題?](/ help /如何問) –
*「沒有通過使用選擇器來選擇textarea的方法(因爲在頁面上可以存在任意數量的這些自定義元素)「*這是不合適的。在頁面上具有多個元素實例並不能通過選擇器進行選擇。 –
@ T.J.Crowder不是元素的多個實例,這個自定義元素的多個實例,這意味着自定義元素每次添加到頁面時都會創建一個新的tinymce。它不知道任何超出自身範圍的任何東西(也就是說,它在每次實例化時都不會生成唯一的ID)。 – pQuestions123