Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Смена текста на изображение (https://javascript.ru/forum/events/31286-smena-teksta-na-izobrazhenie.html)

mooni 01.09.2012 14:23

Смена текста на изображение
 
Добрый день, форумчане!
Появилась такая проблема: необходимо определённые слова на странице заменить изображением.
Создал объект и указал на него ссылку:

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].

Подскажете, как с этим можно справится?

Я так понимаю, что этот код для инлайновых элементов, а не для объектов. Может вас не затруднит объяснить мне. Заранее спасибо.

cyber 01.09.2012 14:28

:blink: вы про замыкания явно не слышали

mooni 01.09.2012 14:45

Только мельком. Читал, но не особо то и понял.

cyber 01.09.2012 14:46

замыкание можно использовать что бы оптимизировать, но мне было влом его писать=)
<!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>

cyber 01.09.2012 14:54

как то так=)
<!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>

cyber 01.09.2012 14:57

но лучше это делать на пхп так как DOM элементы при перезаписи перезагружаются (картинки ... )

mooni 01.09.2012 15:01

На пхп-то я бы это сделал, но вот проблема: это делается для форума, исходного кода нет, приходится выкручиваться javascript'ом. Сейчас попробовал ваш код. Сбивается разметка страницы.(

mooni 01.09.2012 15:02

Был бы доступ к исходному коду форума, мне бы так вообще извращаться не пришлось.)

cyber 01.09.2012 15:04

эм...
т.е сбивается?

mooni 01.09.2012 15:07


вот такая шляпа получается.

cyber 01.09.2012 15:11

а кусок хтмл до и после скрипта скиньте

mooni 01.09.2012 15:14

На этом форуме мало, чего даётся.
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>

cyber 01.09.2012 15:50

вы меня не поняли !!
открываете консоль копируете хтмл без скрипта и после работа скрипта и выкладуете сюда

mooni 01.09.2012 15:56

Понял, извиняюсь. До скрипта:


<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>

mooni 01.09.2012 16:04

Со скриптом:

<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>

mooni 01.09.2012 16:04

Продолжение:
<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]

cyber 01.09.2012 16:05

:nono: :nono: мне не нужен весь код подряд , мне нужен один любой блок с хтмл(только с хтмл) в 2х вариациях до скрипта и после
мне нужно видите как изменяется хтмл что все едит

mooni 01.09.2012 16:29

Спасибо! Разобрался. С моими входными данными скрипт полстраницы перегрызал.)

cyber 01.09.2012 16:32

попробуйте поменять регулярку на такую
var regE = new RegExp (' '+word+' ','ig');

mooni 01.09.2012 16:39

Появилась новая проблема. Когда работает этот скрипт - весь остальной js на странице не работает.

cyber 01.09.2012 16:44

если js находится в body то конечно его будет плющить

cyber 01.09.2012 16:45

вот так
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" >')

Deff 01.09.2012 16:49

mooni,
Вам нужно более точный критерий поиска - для этого искать элементы не во всём body а в четко ограниченном каким то div с id - месте - желательно что данный div с id не включал в себя скрипты и кликабельно событийные элементы - либо искать в нём еще и подъэлементы, обрамляющие контент, которые не затрагивают событийных кнопок

Например на PHBB для поиска в постах
#pun .post .post-content (приведен css селектор - который реализуем в скрипте через цикл

mooni 01.09.2012 17:13

последний скрипт вообще не работает.(

div class="font1" на том форуме посты в этом диве выводятся. Никаких скриптов и событийных элементов там нет.

mooni 01.09.2012 17:15

var elements = document.body.getElementsByClassName('font1');
получается, так надо поменять?

cyber 01.09.2012 17:21

нет, что за бред?
var elements = document.getElementsByClassName('font1')[0].getElementByTagName('*');

mooni 01.09.2012 17:22

Спасибо. Но это решение ведь не кроссбраузерное?

cyber 01.09.2012 17:35

у вас 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;
	}

mooni 01.09.2012 18:48

Спасибо! Всё получилось. :)

mooni 01.09.2012 18:59

И снова проблемы =(

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], а следующие оставляет.

cyber 01.09.2012 19:01

скопируй тот блок и скинь , гляну

mooni 01.09.2012 19:04

<div class="font1"><br><img src="http://i294.photobucket.com/albums/mm119/lazarncane/1.gif">[tab][tab][tab]ghgfhgfhf<br><br></div>


и этих табов может быть сколько угодно, а может и вообще не быть.
Картинка - это заменённый один таб.

cyber 01.09.2012 19:22

ие6-7 я надеюсь вам не нужны?

mooni 01.09.2012 19:31

Да желательно бы, если честно

mooni 01.09.2012 19:33

Да если совсем пиндос, то и чёрт с ним

Deff 01.09.2012 20:06

Цитата:

Сообщение от mooni
Вот всё бы хорошо, только одно но. Если в одном блоке div class=font1 несколько раз встречается искомый [tab], то скрипт заменяет только первый [tab], а следующие оставляет.

Cтранно , скорее всего ошибка в написании [tab]

посколь у regE - поиск глобальный

mooni 01.09.2012 20:12

Спасибо, работает.)

cyber 01.09.2012 20:25

вы уже без меня разобрались=)
только предупреждаю при замене через innerHTML будет перезагружатся весь контент в блоке

Deff 01.09.2012 20:27

Цитата:

Сообщение от cyber
только предупреждаю при замене через innerHTML будет перезагружатся весь контент в блоке

Ну вродь минимизировали поисковый контент. Чел сказал что в нём нет вродь событийных элементов

mooni 01.09.2012 20:28

Я там сначала извлекаю старый контент, потом склеиваю его с новым и записываю обратно)))


Часовой пояс GMT +3, время: 16:49.