Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Если класс есть на странице, значит выполнить код! (https://javascript.ru/forum/misc/49373-esli-klass-est-na-stranice-znachit-vypolnit-kod.html)

FreeZon 10.08.2014 17:04

Если класс есть на странице, значит выполнить код!
 
Есть скрытая картинка...
<img id="qqwe" style="cursor:wait;display:none; margin:0 auto;" src="http://i-black.ru/img/preloader.gif"/>


Жмем кнопку :
<input onclick="Showb();" class="vxod_kn" name="sbm" value="Войти" type="submit">

function Showb()
 {
 document.getElementById('qqwe').style.display = 'block';
 }


Это копка для входа, если пароль не верный. Выполняется сторонний скрипт, который я НЕ МОГУ изменить. Он выполняется и создается ajax окошко с class="xw-body"

И вот мне надо что бы, если это окошко появлялось
выполнялось следующие
document.getElementById('qqwe').style.display = 'none';


Ну тоесть, мы жмем "Вход" появляется изображение загрузки, если вылезло это окошко с ошибкой что пароль не верный, то изображение должно обратно скрыться.

==================
Я пробовал так:

var i=0;
while(i==0){
if (document.getElementsByClassName("xw-body"))
{
document.getElementById('qqwe').style.display = 'none';}
}


Но не чего не выходит... Помогите.

Sweet 10.08.2014 17:29

Таймер используй.

FreeZon 10.08.2014 17:32

Цитата:

Сообщение от Sweet (Сообщение 325202)
Таймер используй.

Не то! Не работает

Sweet 10.08.2014 18:26

Цитата:

Сообщение от FreeZon
Не работает

ЛПП.

FreeZon 10.08.2014 18:47

Цитата:

Сообщение от Sweet (Сообщение 325210)

Бла я че не пробовал?! Ты сам попробуй и покажи свой результат в Fiddle

FreeZon 10.08.2014 18:58

Цитата:

Сообщение от Sweet (Сообщение 325210)

Смотри сам!

Код:

<div class="xw-body">
<span id="qqwe">Привет</span>
</div>

<script>
setInterval('if (document.getElementsByClassName("xw-body")){document.getElementById('qqwe').style.display = 'none';}',1000)
</script>

НЕ РАБОТАЕТ! Слово привет не исчезает...

Sweet 10.08.2014 19:22

Цитата:

Сообщение от FreeZon
НЕ РАБОТАЕТ!

У ТЕБЯ КАВЫЧКИ КОНФЛИКТУЮТ!

FreeZon 10.08.2014 20:11

Цитата:

Сообщение от Sweet (Сообщение 325210)

Цитата:

Сообщение от Sweet (Сообщение 325219)
У ТЕБЯ КАВЫЧКИ КОНФЛИКТУЮТ!

Ну так помоги исправить!

Sweet 10.08.2014 20:20

FreeZon, во-первых, лучше забыть, что в setInterval можно передавать строку. И никогда так не делать. А делать так:
<div class="xw-body">
<span id="qqwe">Привет</span>
</div>

<script> 
setInterval(function () {
  if (document.getElementsByClassName("xw-body")) {
    document.getElementById('qqwe').style.display = 'none';
  }
}, 1000);
</script>
Во-вторых, с кавычками нужно уметь работать - поможет избежать кучу проблем.
'if (document.getElementsByClassName("xw-body")){document.getElementById(\'qqwe\').style.display = \'none\';}' // используй \ для экранирования закрывающей кавычки

FreeZon 10.08.2014 20:59

Цитата:

Сообщение от Sweet (Сообщение 325223)
FreeZon, во-первых, лучше забыть, что в setInterval можно передавать строку. И никогда так не делать. А делать так:
<div class="xw-body">
<span id="qqwe">Привет</span>
</div>

<script> 
setInterval(function () {
  if (document.getElementsByClassName("xw-body")) {
    document.getElementById('qqwe').style.display = 'none';
  }
}, 1000);
</script>
Во-вторых, с кавычками нужно уметь работать - поможет избежать кучу проблем.
'if (document.getElementsByClassName("xw-body")){document.getElementById(\'qqwe\').style.display = \'none\';}' // используй \ для экранирования закрывающей кавычки





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

А вот который мне предоставили, разница только то что это JQ а не JS

setInterval(function (){
   if (document.querySelector(".class")) {
     //Здесь необходимый код
   }
}, 500);


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