Своя кнопка, чтоб работала как тег, в любом месте
Здравствуйте, я у вас впервые , хочу всех поприветствовать и сразу попросить вашей помощи.
Хочу сделать кнопку при нажатии на которую она превращала ЛЮБОЙ ТЕКСТ в (ЛЮБОЙ ТЕКСТ) то есть чтоб работала на подобии BB кода и вставить можно было куда угодно. Есть такая заготовка но она не работает прошу вашей помощи я в этом глупа )) <script language='javascript' type="text/javascript"> function tpl ( ch ) { if (ch == "Year") { document.getElementById('short_story').innerHTML = '()'; } }; </script> <input class="bbcodes_poll2" type="button" value="Год" onclick=tpl("Year") /> Заранее спасибо. |
<script language='javascript' type="text/javascript"> function tpl ( ch ) { if (ch == "Year") { var element = document.getElementById('short_story'); element.innerHTML = ['(', ')'].join(element.innerHTML); } }; </script> <div id="short_story">Short Story</div> <input class="bbcodes_poll2" type="button" value="Год" onclick=tpl("Year") /> Честно говоря не понял что вы хотите сделать. Но ваш код делает то, что должен делать. |
:) надо 9000 новостей такого вида Название фильма ГОД , привести в такой вид Название фильма (ГОД)
Спасибо большое пошла проверять )) |
Спасибо все работает именно с short_story, а вы не могли бы подказать как сделать такое с любым выделенным элементом неважно что я выделила например выделила пример он сделал (пример) выделила другой пример он сделал (другой пример).
|
<script> function tpl ( ch ) { var element = document.getElementById('short_story'); element.innerHTML = element.innerHTML.replace( new RegExp(ch, 'g'), ['(', ')'].join( ch ) ); }; </script> <div id="short_story">выделила пример он сделал (пример) выделила другой пример он сделал (другой пример)</div> <input class="bbcodes_poll2" type="button" value="Год" onclick="tpl( getSelection() )" /> Можно по регулярке (шаблону) произвести замену, например: <script> function tpl ( ch ) { var element = document.getElementById('short_story'); element.innerHTML = element.innerHTML.replace( ch, '($1)' ); }; </script> <div id="short_story">выделила пример 1990 он сделал (пример) выделила 2010г другой пример он сделал (другой пример)</div> <input class="bbcodes_poll2" type="button" value="Год" onclick="tpl( /([0-9]{4})/g )" /> Не проще ли выгрузить базу сайта (верней нужную таблицу) в sql файл и произвести замену через редактор? Или задача другая стоит? |
Прости меня глупую (( нет ID том поле
<input type="text" name="meta_title" style="width:388px;" class="edit bk" value=""> а если привязываю к id станицы то все даже не выделенные слова обрамляет в скобки (( если есть какой нить вариан я с удовольствием выслушаю. там чуть другое нужно, нужно руками заполнить поле metatag поле пустое и в него надо скопировать название фильма год и год обрамить в скобки (( Пример Интерны 8 сезон а надо Интерны (8 сезон серии с 1 по 5) (2009) |
Zolang,
Тут есть копирование по выделению - отпусканию клавиши мыши http://javascript.ru/forum/dom-windo...tml#post228571 |
Спасибо я правда прочту , просто сейчас наткнулась на статью
Поиск по name: getElementsByName Метод document.getElementsByName(name) возвращает все элементы, у которых имя (атрибут name) равно данному. Он работает только с теми элементами, для которых в спецификации явно предусмотрен атрибут name: это form, input, a, select, textarea и ряд других, более редких. Метод document.getElementsByName не будет работать с остальными элементами типа div,p и т.п. и отредактировала твой скрипт по аналогии <script> function tpl ( ch ) { var element = document.getElementByName('meta_title'); element.innerHTML = element.innerHTML.replace( new RegExp(ch, 'g'), ['(', ')'].join( ch ) ); }; </script> <td><input type="text" name="meta_title" style="width:388px;" class="edit bk" value=""></td> <input class="bbcodes_poll2" type="button" value="Год" onclick="tpl( getSelection() )" /> Но он почему то не работает вроде имя правильно написано. |
<script> function tpl ( ch ) { var element = document.getElementsByName('meta_title')[0]; var range = [element.selectionStart, element.selectionEnd].sort(); var start = range[0], end = range[1]; if (start == end) alert('Надо ченить выделить'); var value = element.value; value = value.substring(0, end) + ')' + value.substring(end); value = value.substring(0, start) + '(' + value.substring(start); element.value = value; }; </script> <td><input type="text" name="meta_title" style="width:388px;" class="edit bk" value="abcdef"></td> <input class="bbcodes_poll2" type="button" value="Год" onclick="tpl( getSelection() )" /> Обращаю внимание, скрипт работает только в нормальных браузерах, в старье типа Internet Explorer 8 работать не будет. |
Часовой пояс GMT +3, время: 12:21. |