Я хочу поместить некоторый указанный текст (где это возможно/любое редактируемое поле) до и после любого выделенного текста в документе HTML. document.getSelection()
или document.selection.createRange().text
возвращает только сам текст, а не позицию. Есть ли способ заменить выделенный текст? В любом случае, чтобы вставить конкретный текст до и после опубликованного текста в любом месте документа?Вставить текст до и после выбранного текста в javascript
ответ
Вот функция кросс-браузер, чтобы сделать это, который работает во всех основных браузерах и обслуживает на совершенно другом пути IE делает это по сравнению с другими браузерами.
Живой пример: http://jsfiddle.net/timdown/UWExN/64/
function insertHtmlAtSelectionEnd(html, isBefore) {
var sel, range, node;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = window.getSelection().getRangeAt(0);
range.collapse(isBefore);
// Range.createContextualFragment() would be useful here but was
// until recently non-standard and not supported in all browsers
// (IE9, for one)
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while ((node = el.firstChild)) {
lastNode = frag.appendChild(node);
}
range.insertNode(frag);
}
} else if (document.selection && document.selection.createRange) {
range = document.selection.createRange();
range.collapse(isBefore);
range.pasteHTML(html);
}
}
извините, моя ошибка параметров – SMUsamaShah
@ LifeH2O: В чем проблема? –
в Internet explorer 8 Я получаю неуказанную ошибку на 'range.pasteHTML (html);' где isAfter было true, а html был «text» – SMUsamaShah
Попробуйте это:
var r = document.selection.createRange();
r.text = "before" + r.text;
r.text += "after";
он работает .. Спасибо! – SMUsamaShah
Это только IE. –
О, дерьмо ... У вас есть решение Opera? – SMUsamaShah
- 1. Добавление текста до и после выбранного текста - Форма пользователя VBA
- 2. Удалить конкретный текст до и после выделенного текста Javascript
- 3. Вставить текст до и после выбора в textarea с javascript
- 4. вставки текста до и после того, как в выделенном тексте
- 5. Вставить текст до и после выбора в contenteditable
- 6. Вставить текст в файл после определенного текста
- 7. СЭД - вставить текст после другого текста
- 8. Как вставить текст до и после каждой строки текстового файла?
- 9. Вставка текста до и после
- 10. Изменение выбранного текста через javascript
- 11. Как вставить текст до и после узла DOM в PHP?
- 12. .bat - вставить текст до периода
- 13. Вставить текст до и после выбора и установить стиль нового текста
- 14. JavaScript - Как установить маркеры для выбранного текста?
- 15. Изменить шрифт выбранного текста в javascript
- 16. слова до и после выделенного текста
- 17. Удалить переносы строк до и после текста
- 18. Заменить до и после текста
- 19. Знание текста, выбранного с помощью мыши в javascript
- 20. Вставить введенный текст ввода текста в пункт
- 21. Regex после текста и до конца строки в Javascript
- 22. Вставить строку после определенного текста
- 23. Вставить HTML после выбора
- 24. Поиск текста и добавить текст после
- 25. PHP, вставляющий текст до и после строки
- 26. Положить окончание и начало текста из выделенного текста, охватывающей по несколько дивам в JavaScript
- 27. Вставить текст в текст в Javascript
- 28. До и после псевдо фона наложенного текста
- 29. Отображение выбранного пользователем текста
- 30. Вставить текст до 100% высоты
Не могли бы вы получить строку, добавить, что вы хотите в начале и конце, а затем снова вставьте в исходное положение? – JakeParis
Как «повторно вставить» в «исходную позицию» – SMUsamaShah