Своя кнопка, чтоб работала как тег, в любом месте
Здравствуйте, я у вас впервые , хочу всех поприветствовать и сразу попросить вашей помощи.
Хочу сделать кнопку при нажатии на которую она превращала ЛЮБОЙ ТЕКСТ в (ЛЮБОЙ ТЕКСТ) то есть чтоб работала на подобии 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, время: 01:57. |