Почему не срабатывает java script второй код, если они одинаковы ?
Добрый вечер снова.
За сегодня вторая пробелма, и опять с главной страничкой. Захотел чтобы текст у меня был (один блок) для ПК версии, второй блок для телефона. Сначала я просто скопировал блок и прописал медиа, но сразу проблема появилась, java script в блоке с текстом не сработал, и мне интересно почему ? Если блоки поменять местами - верхний будет работать, а нижний не будет , почему ??? Вот весь код, и верхний и нижний блок: <br> <style> @media (max-width:499px){ .hidew { display: none; } } </style> <div class="hidew"> <script data-ad-client="ca-pub-9202019319870521" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- здесь будет первая часть кода --> <script type="text/javascript"> var message = "Speed-bux.ru - реклама и заработок"; var base_color = "#9cee90"; var style = "text-align: center; color:' + base_color + '; font-size: 34px;"; var color1 = "Crimson"; var color2 = "Powderblue"; var flashspeed = 99; var flashingletters = 2; var flashingletters2 = 2; var flashpause = 0; var n = 0; if (document.all||document.getElementById){ document.write('<div style="'+style+'">') for (m=0; m<message.length; m++) document.write('<span id="neonlight'+m+'">'+message.charAt(m)+'</span>') document.write('</div>') } else document.write(message) function crossref(number){ var crossobj=document.all? eval("document.all.neonlight"+number) : document.getElementById("neonlight"+number) return crossobj } function neon(){ if (n==0){ for (m=0; m<message.length; m++) crossref(m).style.color=base_color } crossref(n).style.color=color1 if (n>flashingletters-1) { crossref(n-flashingletters).style.color=color2 } if (n>(flashingletters+flashingletters2)-1) { crossref(n-flashingletters-flashingletters2).style.color=base_color } if (n<message.length-1) { n++ } else{ n=0 clearInterval(flashing) setTimeout("start_color()",flashpause) return } } function start_color(){ if (document.all||document.getElementById) flashing=setInterval("neon()",flashspeed) } start_color() </script> <!-- здесь будет вторая часть кода (сообщение) --> <br> <br> <div id="mess_box" style="border: 1px solid black; width: 300px; height: 105px; margin: 0 auto; background: #e6e6fa; font-family: Times New Roman; font-size: 22px; text-align: center;"></div> <script type="text/javascript"> var delay = 3000; var text = new Array(); text[0] = "<b><br><br>Каждую неделю</b> <br><br>новые конкурсы<br>"; text[1] = "<br><br>2 вида серфинга<br><br> более 100 ссылок в сутки"; text[2] = "<b><br><br>2 бонуса от каптчи CatCut</b> <br><br>дают каждый час<br>"; text[3] = "<br>Конкурс рекламодателей</b> <br><br>конкурс рефералов<br><br>конкурс серфинга<br>"; text[4] = "<b><br><br>2 игры</b> <br><br>на настоящие деньги<br>"; text[5] = "<br><br><a href=\"https://speed-bux.ru/reg_easy.php\"><b>Регистрируйся</b></a>" + "<br><br>Здесь зарабатывают деньги"; text[6] = "<br><br>Автовыплаты<br><br> PAYEER"; var mess = 0; function change_mess() { if (mess>=text.length) mess = 0; document.getElementById("mess_box").innerHTML = text[mess]; fade_color(); mess++; setTimeout("change_mess();", delay); } frame = 20; hex_r = 155; hex_g = 255; hex_b = 155; function fade_color() { if (frame>0) { hex_r -= 5; hex_g -= 5; hex_b -= 5; document.getElementById("mess_box").style.color = "rgb(" + hex_r + "," + hex_g + "," + hex_b + ")"; frame--; setTimeout("fade_color();", 50); } else { document.getElementById("mess_box").style.color="rgb(0, 155, 0)"; frame = 20; hex_r = 155; hex_g = 255; hex_b = 155; } } change_mess(); </script> </div><br> <style> @media (min-width:500px){ .hide { display: none; } } </style> <div class="hide"> <script data-ad-client="ca-pub-9202019319870521" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- здесь будет первая часть кода --> <script type="text/javascript"> var message = "Speed-bux.ru - реклама и заработок"; var base_color = "#9cee90"; var style = "text-align: center; color:' + base_color + '; font-size: 34px;"; var color1 = "Crimson"; var color2 = "Powderblue"; var flashspeed = 99; var flashingletters = 2; var flashingletters2 = 2; var flashpause = 0; var n = 0; if (document.all||document.getElementById){ document.write('<div style="'+style+'">') for (m=0; m<message.length; m++) document.write('<span id="neonlight'+m+'">'+message.charAt(m)+'</span>') document.write('</div>') } else document.write(message) function crossref(number){ var crossobj=document.all? eval("document.all.neonlight"+number) : document.getElementById("neonlight"+number) return crossobj } function neon(){ if (n==0){ for (m=0; m<message.length; m++) crossref(m).style.color=base_color } crossref(n).style.color=color1 if (n>flashingletters-1) { crossref(n-flashingletters).style.color=color2 } if (n>(flashingletters+flashingletters2)-1) { crossref(n-flashingletters-flashingletters2).style.color=base_color } if (n<message.length-1) { n++ } else{ n=0 clearInterval(flashing) setTimeout("start_color()",flashpause) return } } function start_color(){ if (document.all||document.getElementById) flashing=setInterval("neon()",flashspeed) } start_color() </script> <!-- здесь будет вторая часть кода (сообщение) --> <br> <br> <div id="mess_box" style="border: 1px solid black; width: 300px; height: 105px; margin: 0 auto; background: #e6e6fa; font-family: Times New Roman; font-size: 22px; text-align: center;"></div> <script type="text/javascript"> var delay = 3000; var text = new Array(); text[0] = "<b><br><br>Каждую неделю</b> <br><br>новые конкурсы<br>"; text[1] = "<br><br>2 вида серфинга<br><br> более 100 ссылок в сутки"; text[2] = "<b><br><br>2 бонуса от каптчи CatCut</b> <br><br>дают каждый час<br>"; text[3] = "<br>Конкурс рекламодателей</b> <br><br>конкурс рефералов<br><br>конкурс серфинга<br>"; text[4] = "<b><br><br>2 игры</b> <br><br>на настоящие деньги<br>"; text[5] = "<br><br><a href=\"https://speed-bux.ru/reg_easy.php\"><b>Регистрируйся</b></a>" + "<br><br>Здесь зарабатывают деньги"; text[6] = "<br><br>Автовыплаты<br><br> PAYEER"; var mess = 0; function change_mess() { if (mess>=text.length) mess = 0; document.getElementById("mess_box").innerHTML = text[mess]; fade_color(); mess++; setTimeout("change_mess();", delay); } frame = 20; hex_r = 155; hex_g = 255; hex_b = 155; function fade_color() { if (frame>0) { hex_r -= 5; hex_g -= 5; hex_b -= 5; document.getElementById("mess_box").style.color = "rgb(" + hex_r + "," + hex_g + "," + hex_b + ")"; frame--; setTimeout("fade_color();", 50); } else { document.getElementById("mess_box").style.color="rgb(0, 155, 0)"; frame = 20; hex_r = 155; hex_g = 255; hex_b = 155; } } change_mess(); </script> </div> И того я получаю все время работающий верхний блок в коде, а нижний нет, меняю места , опять верхний работает ,нижний нет. Скрин кода в действии верхнего блока: https://prnt.sc/r8o8a7 Скрин кода в действии нижнего кода: https://prnt.sc/r8o8ky |
Цитата:
|
Цитата:
|
Код действительно очень тяжело разбирать. Все вперемешку.
Не надо в одну кучу смешивать html, javascript и стили. Но как минимум одна ошибка видна. У вас 2 элемента с id="mess_box". Идентификатор должен быть уникальным. И зачем два кода? Вы думаете, раз вы впихнули код в div с display:none, то его не будет? Ничего подобного. Если в коде одинаковые переменные и функции с одинаковыми именами, то вторые просто переопределят первые. Откуда взялся этот шевевр. Из учебников каких годов? if (document.all||document.getElementById) Где вы сейчас найдете браузер без getElementById? Он даже в Netscape 4 был. А может и раньше. И document.all есть везде |
Вот смотрите, что вы делаете
<div class="hidew"> <script data-ad-client="ca-pub-9202019319870521" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- здесь будет первая часть кода --> <script type="text/javascript"> //... bla-bla-bla function start_color(){ if (document.all||document.getElementById) flashing=setInterval("neon()",flashspeed) } start_color() </script> Как вы думаете, когда начнет выполняться start_color() ? Сразу! Во время парсинга страницы. Браузер еще не разберет оставшуюся часть кода, но уже вызовет эту функцию. |
Часовой пояс GMT +3, время: 09:10. |