Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2013, 22:39
Новичок на форуме
Отправить личное сообщение для Zolang Посмотреть профиль Найти все сообщения от Zolang
 
Регистрация: 25.01.2013
Сообщений: 5

Своя кнопка, чтоб работала как тег, в любом месте
Здравствуйте, я у вас впервые , хочу всех поприветствовать и сразу попросить вашей помощи.

Хочу сделать кнопку при нажатии на которую она превращала ЛЮБОЙ ТЕКСТ в (ЛЮБОЙ ТЕКСТ) то есть чтоб работала на подобии 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") />


Заранее спасибо.

Последний раз редактировалось Zolang, 25.01.2013 в 22:45.
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2013, 23:12
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<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") />


Честно говоря не понял что вы хотите сделать. Но ваш код делает то, что должен делать.
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2013, 23:24
Новичок на форуме
Отправить личное сообщение для Zolang Посмотреть профиль Найти все сообщения от Zolang
 
Регистрация: 25.01.2013
Сообщений: 5

надо 9000 новостей такого вида Название фильма ГОД , привести в такой вид Название фильма (ГОД)

Спасибо большое пошла проверять ))
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2013, 23:33
Новичок на форуме
Отправить личное сообщение для Zolang Посмотреть профиль Найти все сообщения от Zolang
 
Регистрация: 25.01.2013
Сообщений: 5

Спасибо все работает именно с short_story, а вы не могли бы подказать как сделать такое с любым выделенным элементом неважно что я выделила например выделила пример он сделал (пример) выделила другой пример он сделал (другой пример).
Ответить с цитированием
  #5 (permalink)  
Старый 25.01.2013, 23:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<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 файл и произвести замену через редактор? Или задача другая стоит?
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2013, 00:04
Новичок на форуме
Отправить личное сообщение для Zolang Посмотреть профиль Найти все сообщения от Zolang
 
Регистрация: 25.01.2013
Сообщений: 5

Прости меня глупую (( нет ID том поле

<input type="text" name="meta_title" style="width:388px;" class="edit bk" value="">


а если привязываю к id станицы то все даже не выделенные слова обрамляет в скобки (( если есть какой нить вариан я с удовольствием выслушаю.

там чуть другое нужно, нужно руками заполнить поле metatag поле пустое и в него надо скопировать название фильма год и год обрамить в скобки (( Пример

Интерны 8 сезон

а надо

Интерны (8 сезон серии с 1 по 5) (2009)

Последний раз редактировалось Zolang, 26.01.2013 в 00:09.
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2013, 00:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Zolang,
Тут есть копирование по выделению - отпусканию клавиши мыши
Подскажите новичку
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2013, 00:28
Новичок на форуме
Отправить личное сообщение для Zolang Посмотреть профиль Найти все сообщения от Zolang
 
Регистрация: 25.01.2013
Сообщений: 5

Спасибо я правда прочту , просто сейчас наткнулась на статью

Поиск по 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() )" />


Но он почему то не работает вроде имя правильно написано.
Ответить с цитированием
  #9 (permalink)  
Старый 26.01.2013, 01:33
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

<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 работать не будет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике в любом месте документа должен удаляться определенный id DorianLeroy jQuery 2 24.12.2011 22:05