Я пытаюсь немного изменить this так, чтобы он запрашивал текст для поиска, а затем текст для замены, а когда все выполненные обработки показывали диалоговое окно, позволяющее я знаю, что все сделано.Справка по закладке: Создание закладки/замены закладки
Я планирую использовать его на странице редактирования базы данных phpmyadmin, которая будет содержать любое количество текстовых полей, заполненных текстом (, что мне нужно для поиска и замены в). Кроме того, текст для поиска и замены может быть или не быть многострочным, поэтому я добавил параметр «m» в регулярное выражение, а также, поскольку я буду выполнять поиск/замену, который может содержать html, они Часто у них есть котировки/двойные кавычки. например:
Поиск:
<img height="76" width="92" src="http://www.gifs.net/Animation11/Hobbies_and_Entertainment/Games_and_Gambling/Slot_machine.gif" /></div>
<div class="rtecenter"> <strong><em><font color="#ff0000">Vegas Baby!<br />
</font></em></strong></div>
и, возможно, заменить ничем (просто стереть все, что код), или какой-либо другой HTML. До сих пор это букмарклет, который я придумал, (javascript, и особенно букмарклеты - это не то, что я часто использую с), но он ничего не делает для поиска/замены, хотя он правильно выполняет запрос.
javascript:var%20scrEl=document.createElement('script');scrEl.setAttribute('language','javascript');scrEl.setAttribute('type','text/javascript');scrEl.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js');function%20htmlreplace(a,b,element){if(!element)element=document.body;var%20nodes=$(element).contents().each(function(){if(this.nodeType==Node.TEXT_NODE){var%20r=new%20RegExp(a,'gim');this.textContent=this.textContent.replace(r,b);}else{htmlreplace(a,b,this);alert('Done%20processing.');}});}htmlreplace(prompt('Text%20to%20find:',''),prompt('Replace%20with:',''));
У кого-нибудь есть идеи?
Спасибо, я попробовал и ничего не произошло. (Подсказки, но нет замены вообще). –
Я просто протестировал его в Firefox на веб-странице с текстовым полем и текстовым вводом. Оно работает. Если это не сработает для вас, есть некоторые детали, которые вы не объяснили. –
Я сконденсировал ваш код в букмарклет (удаленные пробелы, добавил javascript :, и т. Д.): Вот скринкаст этого не работает. [ссылка] (http: // screencast.com/t/imfNn01s) В нем я сначала показываю код букмарклета, а затем показываю попытку выполнить поиск/замену с помощью тире (-) в качестве строки поиска и буквы «Т» в качестве строки замены, в то время как строка выделяется. Во второй раз я делаю то же самое, за исключением того, что строка не подсвечена, и я использую звездочку. Я делаю что-то неправильно? Это было в Firefox 15.01. –