Есть много вопросов по этой теме на SO, но я не могу найти решения для своей проблемы, поэтому я решил задать свой вопрос. Моя ситуация: у меня есть раскрывающийся список с несколькими опциями и текстовое поле внутри iframe
. Когда пользователь выбирает какой-либо текст в текстовом поле и выбирает один из раскрывающегося списка, тогда выделенный текст будет содержать обертку тега a
, а значение параметра станет тегом href
. Вот мой код:Выберите текст и добавьте к нему тег
var optionTag = document.getElementById("option-id");
var optionValue = optionTag.options[optionTag.selectedIndex].value;
var iframe = document.getElementById("my-frame");
var iframeContent = iframe.contentDocument.body.innerHTML.split("<br>")[0];
//get user selected text
var iframeSelection = iframe.contentWindow.getSelection().toString();
// and wrap a tag around it then add href equal to value of option
var aTag = "<a href=\"" + optionValue + "\">" + iframeSelection +"</a>";
// replace user selected text with new a tag
iframe.contentDocument.body.innerHTML = iframeContent.replace(iframeSelection,aTag)
Этот код работы но только заменить первое слово, если это слово уже существует. Например:
lorem ipsum click dolor sit amet click spum
Если пользователь выбирает второе слово «нажмите» и выберите один из вариантов, то мой код будет заменить только первое слово «нажмите», и если у меня есть несколько слов «нажмите» это еще только заменить первое слово, но если пользователь выбирает слово «ipsum» или «lorem», тогда он работает нормально. Я не знаю, как это исправить, пожалуйста, помогите. Спасибо!
p/s: Я не хочу заменять все слова «щелчок», я хочу только выбрать точный элемент.
Не могли бы вы также разместить HTML-код, мне трудно понять этот вопрос. –
Не могли бы вы добавить HTML и, еще лучше, настроить скрипку? – sinisake
Прошу прощения. Я не могу получить доступ к HTML-коду. Например, у меня есть 10 слов «щелчок», и я хочу вручную выбрать каждый из них, а затем выбрать один вариант из раскрывающегося списка, а значение из моей опции станет атрибутом href. Но если я случайно выбираю одно слово «щелчок» и выбираю один optioin, тогда он только завершает первый «щелчок», который появляется в моем абзаце, и добавляет тег плюс href к этому первому слову, а не мое текущее выбранное слово. Извините, мой английский не очень хорошо. –