Вставьте текст в JavaScript contenteditable отделение

Проблема возникает в методе updatePlots, вызываемом setInterval. Здесь вы присваиваете «заводу» новое значение

plant = plots[fullplots[i]][0];

Затем, когда вызывается «растение», оно указывает на новое значение, назначенное вам в updatePlots, вместо функции, которую вы изначально имел. Вы должны объявить новую переменную в updatePlots, чтобы избежать изменения метода установки. Я бы использовал другое имя, чтобы избежать путаницы.

9
задан tshepang 25 March 2014 в 18:17
поделиться

2 ответа

Если все, что необходимо сделать, является вставкой HTML по текущему выбору / точка вставки, которая является выполнимой. Первое, что пришло на ум (для запущения Вас):

В IE используйте document.selection.createRange () .pasteHTML (theNewHTML).

В других браузерах необходимо смочь использовать document.execCommand ("InsertHTML"...).

Я использовал эти виды методов только в доступном для редактирования iframes/documents, не, отделения, но эти вызовы должны работать, если отделение фокусируется, я верю.

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

11
ответ дан 4 December 2019 в 11:08
поделиться

Объекты диапазона и выбора

Используйте объекты диапазона и выбор. Они содержат все виды информации о текущем выборе, и где это находится в дереве узла.

Справедливое предупреждение: не совсем невозможно сделать то, что Вы описываете, но если Вы станете очень необычными, то Вы будете в довольно глубоководных из причуд браузера и несовместимостей. Вы оказываетесь перед необходимостью делать много обнаружения объектов, проверяя, чтобы удостовериться, что у Вас есть последовательные значения и методы. Инкрементно проверьте все свои браузеры, как Вы разрабатываете.Удачи!

7
ответ дан 4 December 2019 в 11:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: