Смена текста на изображение
Добрый день, форумчане!
Появилась такая проблема: необходимо определённые слова на странице заменить изображением. Создал объект и указал на него ссылку: picTab = new Image(); picTab.src = "http://i294.photobucket.com/albums/mm119/lazarncane/1.gif"; Далее ищу нужные слова и пытаюсь их заменить: window.onload=function(){ all_elements=document.getElementsByTagName('*'); for(i=0,s=all_elements.length;i<s;i++) if(all_elements[i].tagName!="SCRIPT") for(j=0,s_=all_elements[i].childNodes.length;j<s_;j++) if(all_elements[i].childNodes[j].nodeType==3) all_elements[i].childNodes[j].textContent=all_elements[i].childNodes[j].textContent.replace(/\[tab\]/g, picTab); } Но браузер в таком случае не воспроизводит объект, пишет только [object HTMLImageElement]. Подскажете, как с этим можно справится? Я так понимаю, что этот код для инлайновых элементов, а не для объектов. Может вас не затруднит объяснить мне. Заранее спасибо. |
:blink: вы про замыкания явно не слышали
|
Только мельком. Читал, но не особо то и понял.
|
замыкание можно использовать что бы оптимизировать, но мне было влом его писать=)
<!DOCTYPE HTML> <html> <head> <style> img { width:20px; height:20px; } </style> </head> <body> <div> У этого термина существуют и другие значения, см. Земля (значения). Земля́ — третья от Солнца планетаlol Солнечной системы, крупнейшая по диаметру, массе и плотности среди планет земной группы. </div> <div> Чаще всего упоминается как Мир, Голубая планета[4][5], иногда Терра (от лат. Terra). Единственное известное человеку на данный момент тело Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.lol Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиардов лет назад,[6][7][8][9] и вскоре после этого приобрела свой единственный естественный спутник — Луну. Жизнь появилась lol на Земле около 3,5 миллиардов лет назад. С тех пор биосфера Земли значительно изменила атмосферу и прочие абиотические факторы, обусловив количественный рост аэробных организмов, так же как и формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную солнечную радиацию, тем самым сохраняя условия для жизни на Земле. Учитывая период полураспада радиоактивных элементов, радиация, обусловленная самой земной корой, снизилась ещё более значительно. Кора Земли разделена на несколько сегментов, или тектонических плит, которые постепенно мигрируют по поверхности за периоды во много миллионов лет. Приблизительно 70,8 % поверхности планеты занимает Мировой океан[10], остальную часть поверхности занимают континенты и острова.</div> <div> Жидкая вода, необходимая для всех известных жизненных форм, не существует на поверхности какой-либо из известных планет и lol планетоидов Солнечной системы, кроме Земли. Внутренние области Земли достаточно активны и состоят из толстого, очень вязкого слоя, называемого мантией, которая покрывает жидкое внешнее ядро (которое и является источником магнитного поля Земли) и внутреннее твёрдое ядро, предположительно, железное. </div> <div> Земля взаимодействует (притягивается гравитационными силами) с другими объектами в космосе, включая Солнце и Луну. Земля lol обращается вокруг Солнца и делает вокруг него полный оборот примерно за 365,26 дней. Этот отрезок времени — сидерический год, который равен 365,26 солнечным суткам. Ось вращения Земли наклонена на 23,4° относительно её орбитальной плоскости, это вызывает сезонные изменения на поверхности планеты с периодом в один тропический год (365,24 солнечных суток). Сутки сейчас составляют примерно 24 часа.</div> <div>Луна lol начала своё обращение на орбите вокруг Земли примерно 4,53 миллиарда лет назад, что стабилизировало осевой наклон планеты[источник не указан 141 день] и является причиной приливов, которые замедляют вращение Земли и отдаляют Луну. Некоторые теории полагают, что падения астероидов приводили к существенным изменениям в окружающей среде и поверхности Земли, в частности, массовые вымирания различных видов живых существ[11]. </div> <script> function FindReplace (word, img) { var elements = document.body.getElementsByTagName('*'); var element, html; var regE = new RegExp (word); for (var i = elements.length;i--;){ element = elements[i] html = element.innerHTML; if( html.search(regE)== -1) continue; element.innerHTML = html.replace(regE,img) } } FindReplace('lol','<img src="http://ctrlc.ru/wp-content/uploads/2012/06/18.jpg" >') </script> </body> </html> |
как то так=)
<!DOCTYPE HTML> <html> <head> <style> img { width:20px; height:20px; } </style> </head> <body> <div> У этого термина существуют и другие значения, см. Земля (значения). Земля́ — третья от Солнца планетаlol Солнечной системы, крупнейшая по диаметру, массе и плотности среди планет земной группы. </div> <div> Чаще всего упоминается как Мир, Голубая планета[4][5], иногда Терра (от лат. Terra). Единственное известное человеку на данный момент тело Солнечной системы в частности и Вселенной вообще, населённое живыми организмами.lol Научные данные указывают на то, что Земля образовалась из солнечной туманности около 4,54 миллиардов лет назад,[6][7][8][9] и вскоре после этого приобрела свой единственный естественный спутник — Луну. Жизнь появилась lol на Земле около 3,5 миллиардов лет назад. С тех пор биосфера Земли значительно изменила атмосферу и прочие абиотические факторы, обусловив количественный рост аэробных организмов, так же как и формирование озонового слоя, который вместе с магнитным полем Земли ослабляет вредную солнечную радиацию, тем самым сохраняя условия для жизни на Земле. Учитывая период полураспада радиоактивных элементов, радиация, обусловленная самой земной корой, снизилась ещё более значительно. Кора Земли разделена на несколько сегментов, или тектонических плит, которые постепенно мигрируют по поверхности за периоды во много миллионов лет. Приблизительно 70,8 % поверхности планеты занимает Мировой океан[10], остальную часть поверхности занимают континенты и острова.</div> <div> Жидкая вода, необходимая для всех известных жизненных форм, не существует на поверхности какой-либо из известных планет и lol планетоидов Солнечной системы, кроме Земли. Внутренние области Земли достаточно активны и состоят из толстого, очень вязкого слоя, называемого мантией, которая покрывает жидкое внешнее ядро (которое и является источником магнитного поля Земли) и внутреннее твёрдое ядро, предположительно, железное. </div> <div> Земля взаимодействует (притягивается гравитационными силами) с другими объектами в космосе, включая Солнце и Луну. Земля обращается вокруг Солнца и делает вокруг него полный оборот примерно за 365,26 дней. Этот отрезок времени — сидерический год, который равен 365,26 солнечным суткам. Ось вращения Земли наклонена на 23,4° относительно её орбитальной плоскости, это вызывает сезонные изменения на поверхности планеты с периодом в один тропический год (365,24 солнечных суток). Сутки сейчас составляют примерно 24 часа.</div> <div>Луна lol начала своё обращение на орбите вокруг Земли примерно 4,53 миллиарда лет назад, что стабилизировало осевой наклон планеты[источник не указан 141 день] и является причиной приливов, которые замедляют вращение Земли и отдаляют Луну. Некоторые теории полагают, что падения астероидов приводили к существенным изменениям в окружающей среде и поверхности Земли, в частности, массовые вымирания различных видов живых существ[11]. </div> <script> function FindReplace (word, img) { var elements = document.body.getElementsByTagName('*'); var element, html, i = 0; var regE = new RegExp (word,'ig'); var leng = elements.length; (function closing() { element = elements[i] html = element.innerHTML; if( html.search(regE)== -1){ end(); return; } console.log(html.replace(regE,img)) element.innerHTML = html.replace(regE,img); function end () { if (i > leng-1) return; console.log(i > leng-1) i++; setTimeout(closing,0); } end(); }()); } FindReplace('lol','<img src="http://ctrlc.ru/wp-content/uploads/2012/06/18.jpg" >') </script> </body> </html> |
но лучше это делать на пхп так как DOM элементы при перезаписи перезагружаются (картинки ... )
|
На пхп-то я бы это сделал, но вот проблема: это делается для форума, исходного кода нет, приходится выкручиваться javascript'ом. Сейчас попробовал ваш код. Сбивается разметка страницы.(
|
Был бы доступ к исходному коду форума, мне бы так вообще извращаться не пришлось.)
|
эм...
т.е сбивается? |
вот такая шляпа получается. |
а кусок хтмл до и после скрипта скиньте
|
На этом форуме мало, чего даётся.
html-верх <HTML> <HEAD> <TITLE>Форум</TITLE> <STYLE type=text/css> BODY{margin:10px;margin-top:15px;margin-bottom:10px;} td{font-family:Verdana;} .font1{font-size:12px;} .font2{font-size:11px;font-weight:400;} .font3{font-size:11px;font-weight:700;} .font4{font-size:15px;} .font5{font-size:11px;font-weight:700;COLOR:#ffa450;} .font6{font-size:11px;font-weight:700;} a:link{color:#006699;text-decoration:none;} a:visited{color:#5493b4;text-decoration:none;} a:hover{color: #dd6900;text-decoration:underline;} tr.font3 {HEIGHT: 28px;BACKGROUND-IMAGE: url(http://jpe.ru/gif/skin/fon31.gif);} tr.font5 {HEIGHT: 30px;BACKGROUND-IMAGE: url(http://jpe.ru/gif/skin/fon41.gif);FONT-WEIGHT:700;} tr.font6 {HEIGHT: 28px;BACKGROUND-IMAGE: url(http://jpe.ru/gif/skin/fon31.gif);} input,select,textarea{font-size:11px;font-family:Verdana;} textarea{width:100%;height:120;} input.sender{background-color:#ffffff;font-weight:700;border:1 outset rgb(0,0,0);} </STYLE> </HEAD> <BODY bgColor=#e5e5e5> /* <script type="text/javascript"> picTab = new Image(); picTab.src = "http://i294.photobucket.com/albums/mm119/lazarncane/1.gif"; </script>*/ <TABLE bgColor=#98aab1 cellSpacing=1 cellPadding=10 width=100% height=100% border=0> <TR bgColor=#F8FCF5><TD valign=top> html-низ </TD></TR></TABLE> <script type="text/javascript"> var oldButtons = document.getElementById("buttons"); function PasteTab(){javascript:pst3('','','','[tab]','');} var newButtons = '<a href="javascript:PasteTab();"><img src="http://forum24.ru/gif/img/more.gif" width="16" height="16" border="0" alt="Отступ" title="Отступ"></a>'; var But = oldButtons.innerHTML + newButtons; document.getElementById("buttons").innerHTML = But; /* window.onload=function(){ all_elements=document.getElementsByTagName('*'); for(i=0,s=all_elements.length;i<s;i++) if(all_elements[i].tagName!="SCRIPT") for(j=0,s_=all_elements[i].childNodes.length;j<s_;j++) if(all_elements[i].childNodes[j].nodeType==3) all_elements[i].childNodes[j].textContent=all_elements[i].childNodes[j].textContent.replace(/\[tab\]/g, picTab); } */ function FindReplace (word, img) { var elements = document.body.getElementsByTagName('*'); var element, html, i = 0; var regE = new RegExp (word,'ig'); var leng = elements.length; (function closing() { element = elements[i] html = element.innerHTML; if( html.search(regE)== -1){ end(); return; } console.log(html.replace(regE,img)) element.innerHTML = html.replace(regE,img); function end () { if (i > leng-1) return; console.log(i > leng-1) i++; setTimeout(closing,0); } end(); }()); } FindReplace('tab','<img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif" >') var a = 'sss'; alert(picTab.src); </script> </BODY></HTML> |
вы меня не поняли !!
открываете консоль копируете хтмл без скрипта и после работа скрипта и выкладуете сюда |
Понял, извиняюсь. До скрипта:
<HTML> <HEAD> <TITLE>Форум</TITLE> <STYLE type=text/css> </STYLE> </HEAD> <BODY bgColor=#e5e5e5> <script type="text/javascript"> /* picTab = new Image(); picTab.src = "http://i294.photobucket.com/albums/mm119/lazarncane/1.gif"; */ </script> <TABLE bgColor=#98aab1 cellSpacing=1 cellPadding=10 width=100% height=100% border=0> <TR bgColor=#F8FCF5><TD valign=top> <!-- HTML-up --> <script type="text/javascript"><!-- new Image().src = "//counter.yadro.ru/hit;start-qip-ru?r"+escape(document.referrer)+((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";"+Math.random(); --></script> <script type="text/javascript"><!-- var QipLoadCounter={}; (function(){ var start = new Date(), first = false; QipLoadCounter.simpleLoad = function(el) { if(first) return false; first = true; if(location.host.search('myqip.ru') == -1) return false; var servTime = (QipLoadCounter.fromServer) ? QipLoadCounter.fromServer: ''; var img = document.createElement('img'); img.src = 'http://lstats.qip.ru/external/log_time_download.php?id=borda.ru&url='+escape(location.host.replace(/^www\./, ''))+escape(location.pathname)+'&time='+((new Date).getTime() - start)+'&serverTime='+escape(servTime); img.style.position = 'absolute';img.style.left = '-5px';img.style.top = '-5px';img.style.width = '1px';img.style.height = '1px'; document.body.insertBefore(img, document.body.firstChild); } })() --></script><script type="text/javascript">new Image().src = "http://counter.yadro.ru/hit;borda?r" + escape(document.referrer) + ((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth)) + ";u" + escape(document.URL) + ";" + Math.random();</script><noscript><img src='//counter.yadro.ru/hit;borda?rhttp%3A//http://testingforsc.myqip.ru/;uhttp%3A//testingforsc.myqip.ru/?1-1-0-00000000-000-0-0;' border='0' width='1' height='1'/></noscript> <!-- tns-counter.ru --> <script language="JavaScript" type="text/javascript"> var img = new Image(); img.src = 'https://www.tns-counter.ru/V13a***R>' + document.referrer.replace(/\*/g,'%2a') + '*rbc_ru/ru/UTF-8/tmsec=rbc_qip-forums/' + Math.round(Math.random() * 1000000000); </script> <noscript> <img src="https://www.tns-counter.ru/V13a****rbc_ru/ru/UTF-8/tmsec=rbc_qip-forums/" width="1" height="1" alt=""> </noscript> <!--/ tns-counter.ru --> <script language="javascript"><!--skip (); u="count.rbc.ru/p940.gif";d=document;nv=navigator;na=nv.appName;p=0;j="N"; n=(na.substring(0,2)=="Mi")?0:1;y=""; y+="<img src='http://"+u+"?r="+escape(d.referrer)+"&width="+screen.width+"&height="+screen.height+"&hash="+escape(d.location.hash.substr(1))+"&rn="+Math.random(); y+="' border=0 width=1 height=1 alt='count'>"; d.write(y);if(!n) { d.write("<"+"!--"); }//--></script><noscript> <img src="http://count.rbc.ru/p940.gif" alt='count' border=0 width=1 height=1 > </noscript><script language="javascript1.2"><!--skip (); if(!n) { d.write("--"+">"); }//--></script> <script type="text/javascript"> allzam = new Array (''); sm = new Array (''); var zv = new Array ('cepbic9opymob','administrator','case','administrator'); var avr_path="qavr";raz = new Array ('Название подфорума2','2','Название основного подфорума0','0','Название подфорума3','3','Название подфорума4','4','Название подфорума5','5','Название подфорума6','6','Название подфорума7','7','Название подфорума8','8','Название подфорума9','9','Название подфорума10','10','Название подфорума11','11','Название подфорума12','12','Название подфорума13','13','Название подфорума14','14','Название подфорума15','15','Название подфорума16','16','Название подфорума17','17','Название подфорума18','18','Название подфорума19','19','Название подфорума1','1'); users = new Array ('akv',''); chknam = new Array ('akv',''); forum='testingforsc';domen='myqip';msk='ru';parol='gzщшгбгzгzk2рjшmр2яmрогzяjаyятмhяблiгоф5яозjрjдщфэе';realip='78.25.178.89';filenumber='00000000';gifdomen='http://forum24.ru';avrdomen='http://myqip.ru';lasttime='1346440963';p1 ='1';p2 ='1';p3 ='1';p4 ='1';prof='akv';msgid='000';work='1';nick='akv';modraz='';razdel='1';adresat='';p5 ='1';p6 ='1';p7 ='1';p8 ='1';start='0';invisible='';only_new_re=0;start_page_re=0;group=4;timezone=14400;type=2;form_new_off=0;form_re_off=0;avr_off=0;graf_but_off=0;gde_form='1';servertime=1346500431;rang=1;re_on_page=15;tem_on_page=15;gb=0;gr_edit=1;gr_bui=0;gr_mat=0;gr_sm=0;gr_gif=0;gr_invis=1;gr_imgpod=1;gr_avr_send=1;listfrend=''; topicview = ['akv','akv'];topicguest = 0; </script> <script type="text/javascript">var diz = new Array ('http://jpe.ru/gif/1','#006699','#E0E4E8','#D0D8E0','#F0F0F0','#F7F7F7','#FFFFFF','#FFFFFF','#006699','#E0E4E8','','гражданский','прапорщик','сержант','мл. лейтенант','лейтенант','ст. лейтенант','майор','подполковник','полковник','генерал');</script> <script src="/qdoc/t/testingforsc/lang0.js" type="text/javascript"></script> <script src="http://borda.qip.ru/js16/gb_forum.js" type="text/javascript"></script> <script src="http://borda.qip.ru/js16/forum.js" type="text/javascript"></script> <script type="text/javascript"> shapka('','','','1','Форум','http://borda.ru','<a href=http://borda.ru><img border=0 src=http://jpe.ru/gif/tmp/borda_logo.png></a>','Уважаемый владелец форума! Добро пожаловать. Для получения прав администратора нажмите на ссылку «Вход-регистрация». Введите имя Admin и обязательно пароль форума, то есть тот пароль, который Вы указали при создании форума. Отметьте галочкой «зарегистрироваться, я новый участник». Нажмите «ОК». Дальнейшие указания Вы найдете в личном сообщении. Вам надо будет кликнуть на мигающий конвертик или открыть ссылку Л.С в шапке форума. ','0','1','1','1'); </script> <!-- START RB_BANNER_right_top --> <div align='right' style='margin:5px 0px;'> <span rbslot="borda_right" block="2991"></span> <!-- BEGIN BANNER_PLACE put this code where your want to see banner --> <div id="medialand_adland_div_2168" name="medialand_adland_div" style="display:none;"> <iframe id="medialand_adland_frm_2168" frameborder="0" vspace="0" hspace="0" width="0" height="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div> <!-- END BANNER_PLACE --> <!--BEGIN Medialand banner_630x70 (banner_all_rectangle) put under document content --> <script language="JavaScript"> <!-- var random = Math.floor(Math.random() * 1000000000); document.write('<scr' + 'ipt language="JavaScript" src="http://medialand.relax.ru/code?pid=2168&gid=330&oin=1&rid=' + random +'"></scr' + 'ipt>'); // --> </script> <!--END Medialand --><script type="text/javascript"><!-- document.cookie="rb_shows=102b%102c; expires=Sun, 10 Jul 2022 20:00:00 GMT; path=/; domain=.qip.ru"; document.cookie="rb_shows_day=102b-1%102c-1; expires=Sat, 01 Sep 2012 20:00:00 GMT; path=/; domain=.qip.ru"; --></script> </div> <!-- END RB_BANNER_right_top --> <script type="text/javascript"> navigator_forum('','..','0','0','','0'); document.title='..'; mo('akv','..','[tab]','','1','1346488364','1','akv','','0','','4','78.25.178.89`LNX`MZ`7058`1024`24`no`no`no`no`no','','1346440963','0','','','0','','','',''); page_re('1'); document.write('<TR><TD colspan=2 bgcolor="'+diz[2]+'" align=center class=font2>');</script><div class=font2><div id='reklamaverh'></div></div><script type="text/javascript"> document.write('<br><br></TD></TR>');mo('akv','..','[tab][tab][tab][tab]','','1','1346489060','3','akv','','0','000.001','3','78.25.178.89`LNX`MZ`7059`1024`24`no`no`no`no`no','','1346440963','0','','','0','','','',''); navigator_forum('','..','0','1','','0');topic_view();niz_forum('','','','174','3600','1','0','0'); </script> <!-- START RB_BANNER_borda_search --><span rbslot="borda_search" block="5802"></span> <div id="rdminfrm_32665"><a onmousedown="document.createElement('IMG').src='http://rb.qip.ru/?bid=NTgwMjo4OTg4&r='+Math.random();" href="http://readme.ru" target="_blank">ReadMe.Ru</a></div><script charset="utf-8" type="text/javascript" src="http://readme.ru/informer/32665.js"></script><script type="text/javascript"><!-- document.cookie="rb_shows=1d0e%1d0f; expires=Sun, 10 Jul 2022 20:00:00 GMT; path=/; domain=.qip.ru"; document.cookie="rb_shows_day=1d0e-1%1d0f-1; expires=Sat, 01 Sep 2012 20:00:00 GMT; path=/; domain=.qip.ru"; --></script> <!-- END RB_BANNER_borda_search --><br/><br/><div class=font2 align=center><a target=_blank href="http://borda.qip.ru"><u>Создай свой форум на сервисе Borda.qip.ru</u></a><br><a target=_blank href="http://wap.testingforsc.myqip.ru/?1-1-0-00000000-000-0-0"><u>Текстовая версия</u></a> <br><br></div> <!-- hm 71 HTML-down 0.60058903694153 --> </TD></TR></TABLE> <script type="text/javascript"> var oldButtons = document.getElementById("buttons"); function PasteTab(){javascript:pst3('','','','[tab]','');} var newButtons = '<a href="javascript:PasteTab();"><img src="http://forum24.ru/gif/img/more.gif" width="16" height="16" border="0" alt="Отступ" title="Отступ"></a>'; var But = oldButtons.innerHTML + newButtons; document.getElementById("buttons").innerHTML = But; </BODY></HTML> <script type="text/javascript"><!-- QipLoadCounter.fromServer=601; --></script><script type="text/javascript"><!-- document.write('<img src="http://lstats.qip.ru/images/1px.gif?r='+Math.random()+'" onload="QipLoadCounter.simpleLoad(this);" />'); --></script> |
Со скриптом:
<HTML> <HEAD> <TITLE>Форум</TITLE> <STYLE type=text/css> </STYLE> </HEAD> <BODY bgColor=#e5e5e5> <TABLE bgColor=#98aab1 cellSpacing=1 cellPadding=10 width=100% height=100% border=0> <TR bgColor=#F8FCF5><TD valign=top> <!-- HTML-up --> <script type="text/javascript"><!-- new Image().src = "//counter.yadro.ru/hit;start-qip-ru?r"+escape(document.referrer)+((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";"+Math.random(); --></script> <script type="text/javascript"><!-- var QipLoadCounter={}; (function(){ var start = new Date(), first = false; QipLoadCounter.simpleLoad = function(el) { if(first) return false; first = true; if(location.host.search('myqip.ru') == -1) return false; var servTime = (QipLoadCounter.fromServer) ? QipLoadCounter.fromServer: ''; var img = document.createElement('img'); img.src = 'http://lstats.qip.ru/external/log_time_download.php?id=borda.ru&url='+escape(location.host.replace(/^www\./, ''))+escape(location.pathname)+'&time='+((new Date).getTime() - start)+'&serverTime='+escape(servTime); img.style.position = 'absolute';img.style.left = '-5px';img.style.top = '-5px';img.style.width = '1px';img.style.height = '1px'; document.body.insertBefore(img, document.body.firstChild); } })() --></script><script type="text/javascript">new Image().src = "http://counter.yadro.ru/hit;borda?r" + escape(document.referrer) + ((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth)) + ";u" + escape(document.URL) + ";" + Math.random();</script><noscript><img src='//counter.yadro.ru/hit;borda?rhttp%3A//http://testingforsc.myqip.ru/;uhttp%3A//testingforsc.myqip.ru/?1-1-0-00000000-000-0-0;' border='0' width='1' height='1'/></noscript> <!-- tns-counter.ru --> <script language="JavaScript" type="text/javascript"> var img = new Image(); img.src = 'https://www.tns-counter.ru/V13a***R>' + document.referrer.replace(/\*/g,'%2a') + '*rbc_ru/ru/UTF-8/tmsec=rbc_qip-forums/' + Math.round(Math.random() * 1000000000); </script> <noscript> <img src="https://www.tns-counter.ru/V13a****rbc_ru/ru/UTF-8/tmsec=rbc_qip-forums/" width="1" height="1" alt=""> </noscript> <!--/ tns-counter.ru --> <script language="javascript"><!--skip (); u="count.rbc.ru/p940.gif";d=document;nv=navigator;na=nv.appName;p=0;j="N"; n=(na.substring(0,2)=="Mi")?0:1;y=""; y+="<img src='http://"+u+"?r="+escape(d.referrer)+"&width="+screen.width+"&height="+screen.height+"&hash="+escape(d.location.hash.substr(1))+"&rn="+Math.random(); y+="' border=0 width=1 height=1 alt='count'>"; d.write(y);if(!n) { d.write("<"+"!--"); }//--></script><noscript> <img src="http://count.rbc.ru/p940.gif" alt='count' border=0 width=1 height=1 > </noscript><script language="javascript1.2"><!--skip (); if(!n) { d.write("--"+">"); }//--></script> <script type="text/javascript"> allzam = new Array (''); sm = new Array (''); var zv = new Array ('cepbic9opymob','administrator','case','administrator'); var avr_path="qavr";raz = new Array ('Название подфорума2','2','Название основного подфорума0','0','Название подфорума3','3','Название подфорума4','4','Название подфорума5','5','Название подфорума6','6','Название подфорума7','7','Название подфорума8','8','Название подфорума9','9','Название подфорума10','10','Название подфорума11','11','Название подфорума12','12','Название подфорума13','13','Название подфорума14','14','Название подфорума15','15','Название подфорума16','16','Название подфорума17','17','Название подфорума18','18','Название подфорума19','19','Название подфорума1','1'); users = new Array ('akv',''); chknam = new Array ('akv',''); forum='testingforsc';domen='myqip';msk='ru';parol='gzщшгбгzгzk2рjшmр2яmрогzяjаyятмhяблiгоф5яозjрjдщфэе';realip='78.25.178.89';filenumber='00000000';gifdomen='http://forum24.ru';avrdomen='http://myqip.ru';lasttime='1346481056';p1 ='1';p2 ='1';p3 ='1';p4 ='1';prof='akv';msgid='000';work='1';nick='akv';modraz='';razdel='1';adresat='';p5 ='1';p6 ='1';p7 ='1';p8 ='1';start='0';invisible='';only_new_re=0;start_page_re=0;group=4;timezone=14400;type=2;form_new_off=0;form_re_off=0;avr_off=0;graf_but_off=0;gde_form='1';servertime=1346500939;rang=1;re_on_page=15;tem_on_page=15;gb=0;gr_edit=1;gr_bui=0;gr_mat=0;gr_sm=0;gr_gif=0;gr_invis=1;gr_imgpod=1;gr_avr_send=1;listfrend=''; topicview = ['akv','akv'];topicguest = 0; </script> <script type="text/javascript">var diz = new Array ('http://jpe.ru/gif/1','#006699','#E0E4E8','#D0D8E0','#F0F0F0','#F7F7F7','#FFFFFF','#FFFFFF','#006699','#E0E4E8','','гражданский','прапорщик','сержант','мл. лейтенант','лейтенант','ст. лейтенант','майор','подполковник','полковник','генерал');</script> <script src="/qdoc/t/testingforsc/lang0.js" type="text/javascript"></script> <script src="http://borda.qip.ru/js16/gb_forum.js" type="text/javascript"></script> <script src="http://borda.qip.ru/js16/forum.js" type="text/javascript"></script> <script type="text/javascript"> shapka('','','','1','Форум','http://borda.ru','<a href=http://borda.ru><img border=0 src=http://jpe.ru/gif/tmp/borda_logo.png></a>','Уважаемый владелец форума! Добро пожаловать. Для получения прав администратора нажмите на ссылку «Вход-регистрация». Введите имя Admin и обязательно пароль форума, то есть тот пароль, который Вы указали при создании форума. Отметьте галочкой «зарегистрироваться, я новый участник». Нажмите «ОК». Дальнейшие указания Вы найдете в личном сообщении. Вам надо будет кликнуть на мигающий конвертик или открыть ссылку Л.С в шапке форума. ','0','1','1','1'); </script> <!-- START RB_BANNER_right_top --> <div align='right' style='margin:5px 0px;'> <span rbslot="borda_right" block="2991"></span> <!-- BEGIN BANNER_PLACE put this code where your want to see banner --> <div id="medialand_adland_div_2168" name="medialand_adland_div" style="display:none;"> <iframe id="medialand_adland_frm_2168" frameborder="0" vspace="0" hspace="0" width="0" height="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div> <!-- END BANNER_PLACE --> <!--BEGIN Medialand banner_630x70 (banner_all_rectangle) put under document content --> <script language="JavaScript"> <!-- var random = Math.floor(Math.random() * 1000000000); document.write('<scr' + 'ipt language="JavaScript" src="http://medialand.relax.ru/code?pid=2168&gid=330&oin=1&rid=' + random +'"></scr' + 'ipt>'); // --> </script> <!--END Medialand --><script type="text/javascript"><!-- document.cookie="rb_shows=102b%102c; expires=Sun, 10 Jul 2022 20:00:00 GMT; path=/; domain=.qip.ru"; document.cookie="rb_shows_day=102b-1%102c-1; expires=Sat, 01 Sep 2012 20:00:00 GMT; path=/; domain=.qip.ru"; --></script> </div> <!-- END RB_BANNER_right_top --> <script type="text/javascript"> navigator_forum('','..','0','0','','0'); document.title='..'; mo('akv','..','[tab]','','1','1346488364','1','akv','','0','','4','78.25.178.89`LNX`MZ`7058`1024`24`no`no`no`no`no','','1346440963','0','','','0','','','',''); page_re('1'); document.write('<TR><TD colspan=2 bgcolor="'+diz[2]+'" align=center class=font2>');</script><div class=font2><div id='reklamaverh'></div></div><script type="text/javascript"> document.write('<br><br></TD></TR>');mo('akv','..','[tab][tab][tab][tab]','','1','1346489060','3','akv','','0','000.001','3','78.25.178.89`LNX`MZ`7059`1024`24`no`no`no`no`no','','1346440963','0','','','0','','','',''); navigator_forum('','..','0','1','','0');topic_view();niz_forum('','','','187','3600','1','0','0'); </script> <!-- START RB_BANNER_borda_search --><span rbslot="borda_search" block="5802"></span> <div id="rdminfrm_32665"><a onmousedown="document.createElement('IMG').src='http://rb.qip.ru/?bid=NTgwMjo4OTg4&r='+Math.random();" href="http://readme.ru" target="_blank">ReadMe.Ru</a></div><script charset="utf-8" type="text/javascript" src="http://readme.ru/informer/32665.js"></script><script type="text/javascript"><!-- document.cookie="rb_shows=1d0e%1d0f; expires=Sun, 10 Jul 2022 20:00:00 GMT; path=/; domain=.qip.ru"; document.cookie="rb_shows_day=1d0e-1%1d0f-1; expires=Sat, 01 Sep 2012 20:00:00 GMT; path=/; domain=.qip.ru"; --></script> <!-- END RB_BANNER_borda_search --><br/><br/><div class=font2 align=center><a target=_blank href="http://borda.qip.ru"><u>Создай свой форум на сервисе Borda.qip.ru</u></a><br><a target=_blank href="http://wap.testingforsc.myqip.ru/?1-1-0-00000000-000-0-0"><u>Текстовая версия</u></a> <br><br></div> <!-- hm 71 HTML-down 0.0073299407958984 --> </TD></TR></TABLE> |
Продолжение:
<script type="text/javascript"> var oldButtons = document.getElementById("buttons"); function PasteTab(){javascript:pst3('','','','[tab]','');} var newButtons = '<a href="javascript:PasteTab();"><img src="http://forum24.ru/gif/img/more.gif" width="16" height="16" border="0" alt="Отступ" title="Отступ"></a>'; var But = oldButtons.innerHTML + newButtons; document.getElementById("buttons").innerHTML = But; function FindReplace (word, img) { var elements = document.body.getElementsByTagName('*'); var element, html, i = 0; var regE = new RegExp (word,'ig'); var leng = elements.length; (function closing() { element = elements[i] html = element.innerHTML; if( html.search(regE)== -1){ end(); return; } console.log(html.replace(regE,img)) element.innerHTML = html.replace(regE,img); function end () { if (i > leng-1) return; console.log(i > leng-1) i++; setTimeout(closing,0); } end(); }()); } FindReplace('tab','<img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif" >') var a = 'sss'; alert('hi'); </script> </BODY></HTML> <script type="text/javascript"><!-- QipLoadCounter.fromServer=8; --></script><script type="text/javascript"><!-- document.write('<img src="http://lstats.qip.ru/images/1px.gif?r='+Math.random()+'" onload="QipLoadCounter.simpleLoad(this);" />'); --></script>[/JS] |
:nono: :nono: мне не нужен весь код подряд , мне нужен один любой блок с хтмл(только с хтмл) в 2х вариациях до скрипта и после
мне нужно видите как изменяется хтмл что все едит |
Спасибо! Разобрался. С моими входными данными скрипт полстраницы перегрызал.)
|
попробуйте поменять регулярку на такую
var regE = new RegExp (' '+word+' ','ig'); |
Появилась новая проблема. Когда работает этот скрипт - весь остальной js на странице не работает.
|
если js находится в body то конечно его будет плющить
|
вот так
function FindReplace (word, img) { var elements = document.body.getElementsByTagName('*'); var element, html, i = 0, tagN; var regE = new RegExp (word,'ig'); var leng = elements.length; (function closing() { element = elements[i]; tagN = element.tagName.toLowerCase(); if ( tagN == 'script' || tagN == 'style')end(); html = element.innerHTML; if( html.search(regE)== -1) end(); element.innerHTML = html.replace(regE,img); function end () { if (i > leng-1) return; console.log(i > leng-1) i++; setTimeout(closing,0); } end(); }()); } FindReplace('lol','<img src="http://ctrlc.ru/wp-content/uploads/2012/06/18.jpg" >') |
mooni,
Вам нужно более точный критерий поиска - для этого искать элементы не во всём body а в четко ограниченном каким то div с id - месте - желательно что данный div с id не включал в себя скрипты и кликабельно событийные элементы - либо искать в нём еще и подъэлементы, обрамляющие контент, которые не затрагивают событийных кнопок Например на PHBB для поиска в постах #pun .post .post-content (приведен css селектор - который реализуем в скрипте через цикл |
последний скрипт вообще не работает.(
div class="font1" на том форуме посты в этом диве выводятся. Никаких скриптов и событийных элементов там нет. |
var elements = document.body.getElementsByClassName('font1');
получается, так надо поменять? |
нет, что за бред?
var elements = document.getElementsByClassName('font1')[0].getElementByTagName('*'); |
Спасибо. Но это решение ведь не кроссбраузерное?
|
у вас 3 варианта:
1.забить на ие 6-7 2.использовать id 3.юзать эту функцию function FindClass(FindClass){ var allTag, allElem, arrE = [], i; if(document.getElementsByClassName){ return document.getElementsByClassName(FindClass); } allElem = document.body.getElementsByTagName('*'); i = allElem.length; while(i--){ if(allElem[i].className == FindClass) arrE.push(allElem[i]); } return arrE; } |
Спасибо! Всё получилось. :)
|
И снова проблемы =(
function FindClass(FindClas){ var allTag, allElem, arrE = [], i; if(document.getElementsByClassName){ return document.getElementsByClassName(FindClas); } allElem = document.body.getElementsByTagName('*'); i = allElem.length; while(i--){ if(allElem[i].className == FindClas) arrE.push(allElem[i]); } return arrE; } function FindReplace (word, img) { var elements = FindClass('font1'); var element, html, i = 0; var regE = new RegExp (word,'ig'); var leng = elements.length; (function closing() { element = elements[i] html = element.innerHTML; if( html.search(regE)== -1){ end(); return; } console.log(html.replace(regE,img)) element.innerHTML = html.replace(word,img); function end () { if (i > leng-1) return; console.log(i > leng-1) i++; setTimeout(closing,0); } end(); }()); } FindReplace('[tab]','<img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif" >') Вот всё бы хорошо, только одно но. Если в одном блоке div class=font1 несколько раз встречается искомый [tab], то скрипт заменяет только первый [tab], а следующие оставляет. |
скопируй тот блок и скинь , гляну
|
<div class="font1"><br><img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif">[tab][tab][tab]ghgfhgfhf<br><br></div> и этих табов может быть сколько угодно, а может и вообще не быть. Картинка - это заменённый один таб. |
ие6-7 я надеюсь вам не нужны?
|
Да желательно бы, если честно
|
Да если совсем пиндос, то и чёрт с ним
|
Цитата:
посколь у regE - поиск глобальный |
Спасибо, работает.)
|
вы уже без меня разобрались=)
только предупреждаю при замене через innerHTML будет перезагружатся весь контент в блоке |
Цитата:
|
Я там сначала извлекаю старый контент, потом склеиваю его с новым и записываю обратно)))
|
Часовой пояс GMT +3, время: 16:49. |