Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите сделать юзер скрипт для выделения текста. (https://javascript.ru/forum/misc/26769-pomogite-sdelat-yuzer-skript-dlya-vydeleniya-teksta.html)

deerc 21.03.2012 18:47

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

P.S Конечно в планах есть еще пара доработок скрипта, но хочется разбираться последовательно, дополняя функции по мере изучения.

P.S Если конкретно, то нужно на opensharing.org выделить жирным нужный год. Сейчас это у меня реализовано через через css, но очень кастыльным методом, и выделяется далеко не все.

deerc 22.03.2012 22:53

Спасибо.
Скрипт сразу не заработал, но немного почитав про replace, я использовал глобальный поиск и все заработало:
//получаем текст документа в переменную
var htmlText = document.body.innerHTML;
//заменяем в тексте документа все слова "жопа" на жопа с обрамляющими тегами добавляющими жирноту и сохраняем результат в newHtmlText
var newHtmlText = htmlText.replace(/жопа/g,/*глобальный поиск*/ '<b>жопа</b>'); 
//обновляем текст документа на текст из newHtmlText
document.body.innerHTML = newHtmlText;


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

Caminante 23.03.2012 10:31

Спасибо за пример! А можно ли таким образом реализовать выделение для слов, вводимых пользователем (поиск)? У меня получается выделить только первое слово таким образом:

var wrapper = document.getElementById('wrapper');
var word = document.getElementById('search').value;
var new_word = '<a name="search_word" class="orange_word">'+word+'</a>';

var txt = wrapper.innerHTML;
txt = txt.toString();

var new_txt = txt.replace(word, new_word);

wrapper.innerHTML = new_txt;


Если попытаться добавить /word/gi , то все перестает работать...

P.S. А самое главное - работает только в FF...


Часовой пояс GMT +3, время: 02:02.