0

Я создаю настраиваемый плагин для редактора, предоставленного Google Closure. Плагин позволяет добавить кнопку.Google Closure добавляет onclick к кнопке после добавления этой кнопки с настраиваемым плагином редактора

The dialog of the plugin.

У меня возникают проблемы, установив OnClick на кнопке, остальные значения хорошо установлены.

button.innerHTML = event.label; 
button.className = event.initialClass; 

var extraClasses = event.extraClasses; 

if (extraClasses) 
{ 
    button.className += ' ' + extraClasses 
} 

button.onclick = function() { event.onclick }; 

Кто-нибудь знает, что я делаю неправильно, и как я могу это исправить?

После создания кнопки она добавляется в редакцию SeamlessField. Вторая проблема, которую я сейчас испытываю, заключается в том, что после создания кнопки мой указатель находится внутри кнопки, и я не могу ее отобразить.

Created button.

Я получил последующий кусок кода для обработки этого в данный момент. Кнопка var - созданная кнопка. Кнопка содержит: <button class="orange">test</button>

// We want to insert the button in place of the user's selection. 
// So we restore it first, and then use it for insertion. 
this.restoreOriginalSelection(); 
var range = this.fieldObject.getRange(); 
button = range.replaceContentsWithNode(button); 

// Done making changes, notify the editor. 
this.fieldObject.dispatchChange(); 

// Put the user's selection right after the newly inserted button. 
goog.editor.range.placeCursorNextTo(button, false); 

// Dispatch selection change event because we just moved the selection. 
this.fieldObject.dispatchSelectionChangeEvent(); 

Любые идеи о том, как я мог бы решить эту проблему второй Aswell?

ответ

1

Во-первых, похоже, что вы не начали использовать код события Google Closure. Подключение до кнопки к событию «нажмите» в Google Closure будет выглядеть следующим образом:

goog.events.listen(button, goog.events.EventType.CLICK, event.onclick)

Вы также должны расследовать goog.dom и goog.dom.classes пространств имен, если вы хотите использовать обёртки Google Closure вокруг стандартного CSS класс и текст DOM-манипуляции.


Во-вторых, вы тестировали в Chrome? Если да, то вы, возможно, столкнулись с вопросом диапазона в Webkit, документированы в самом Closure кода: https://code.google.com/p/closure-library/source/browse/closure/goog/editor/range.js#174

я удосужился это в прошлом, вставив пустой <span> элемент в качестве собрата после элемента нарушившего (в вашем случае) и вместо этого поместите курсор рядом с <span>. Тем не менее, нет ничего, что помешает пользователю перемещать курсор обратно внутри вашей кнопки. Вам придется добавить больше логики, чтобы пользователь не помещал курсор в текст кнопки.

 Смежные вопросы

  • Нет связанных вопросов^_^