Проблема возникает в методе updatePlots, вызываемом setInterval. Здесь вы присваиваете «заводу» новое значение
plant = plots[fullplots[i]][0];
Затем, когда вызывается «растение», оно указывает на новое значение, назначенное вам в updatePlots, вместо функции, которую вы изначально имел. Вы должны объявить новую переменную в updatePlots, чтобы избежать изменения метода установки. Я бы использовал другое имя, чтобы избежать путаницы.
Если все, что необходимо сделать, является вставкой HTML по текущему выбору / точка вставки, которая является выполнимой. Первое, что пришло на ум (для запущения Вас):
В IE используйте document.selection.createRange () .pasteHTML (theNewHTML).
В других браузерах необходимо смочь использовать document.execCommand ("InsertHTML"...).
Я использовал эти виды методов только в доступном для редактирования iframes/documents, не, отделения, но эти вызовы должны работать, если отделение фокусируется, я верю.
Поскольку другой ответ предупредил, это становится ужасным, если Вы хотите управление с более прекрасными зернами, как вставка текста в других местах.
Объекты диапазона и выбора
Используйте объекты диапазона и выбор. Они содержат все виды информации о текущем выборе, и где это находится в дереве узла.
Справедливое предупреждение: не совсем невозможно сделать то, что Вы описываете, но если Вы станете очень необычными, то Вы будете в довольно глубоководных из причуд браузера и несовместимостей. Вы оказываетесь перед необходимостью делать много обнаружения объектов, проверяя, чтобы удостовериться, что у Вас есть последовательные значения и методы. Инкрементно проверьте все свои браузеры, как Вы разрабатываете.Удачи!