24.08.2013, 22:11
|
Новичок на форуме
|
|
Регистрация: 24.08.2013
Сообщений: 4
|
|
Выполняет и If и Else одновременно
Подскажите, люди добрые.
Код запускаю через Tampermonkey на чужом сайте.
Он проверяет, что элемент присутствует и выводит сообщение, но почему-то вслед за этим начинает выполнять значение else.
$(document).ready(function(){
if (document.getElementById("ctl00_ContentMainPage_ctlSeparateProduct_pnlOutofStock") !=null)
{
alert("Нет товара");
}
else {
location.reload(true);}
});
На локальной страничке он работает без такого глюка.
|
|
25.08.2013, 07:59
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
$(function() {
if($('#ctl00_ContentMainPage_ctlSeparateProduct_pnlOutofStock').length) {
location.reload(true);
}
else {
alert("Нет товара")
}
});
Странно, что не работает.
|
|
25.08.2013, 09:32
|
Новичок на форуме
|
|
Регистрация: 24.08.2013
Сообщений: 4
|
|
Все равно глючит. Даже Ваш код.
Вот с таким значение !=null:
Где есть Id:
1)Один раз выводит alert
2)Уходит в бесконечный цикл рефрешей.
Где нет этого Id:
1)Один раз выводит alert и все
С таким значением ==null:
Где есть ID - выводит алерт, делает рефреш - и так бесконечно
Где нет Id на страничке - вообще ничего не делает.
Может собака зарыта вот тут? $(document).ready(function()
Я ума не приложу, код пишу впервые в жизни.
По хорошему, я хотел, чтобы страница проверялась бесконечно, до момента появления нужного мне объекта. Только решил обойтись без while, так как не понял как его увязать с document.ready
|
|
25.08.2013, 09:36
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
Madrabit, ссылку на сайт.
|
|
25.08.2013, 11:22
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Madrabit
|
Выполняет и If и Else одновременно
|
только по названиям тем на этом форуме, давно уже известно, что конструкции javascript не работают
Сообщение от Madrabit
|
я хотел, чтобы страница проверялась бесконечно, до момента появления нужного мне объекта
|
а он появится?
Сообщение от Madrabit
|
Может собака зарыта вот тут? $(document).ready(function()
|
а может в Tampermonkey
если верить этому http://habrahabr.ru/post/129343/
Цитата:
|
Все юзерскрипты запускаются после того, как загрузились все основные элементы страницы, но ещё не загрузились картинки. Можно сказать, что юзерскрипты грузятся по событию DOMContentLoaded.
В любом случае, проверки на window.onload не нужны.
|
хотя нужно читать конкретно по tampermonkey, но это ты сам, не забудь рассказать до чего дочитался
|
|
25.08.2013, 12:20
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,215
|
|
Сообщение от bes
|
только по названиям тем на этом форуме, давно уже известно, что конструкции javascript не работают
|
По их словам в JS вообще мало чего работоспособно...
|
|
25.08.2013, 13:01
|
Новичок на форуме
|
|
Регистрация: 24.08.2013
Сообщений: 4
|
|
вот страница для которой код
нужный объект появится со временем, когда товар будет в наличии
буду копать дальше, раз код корректно работает на локальной странице, то очевидно, что проблема в tampermonkey
|
|
25.08.2013, 20:44
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Madrabit,
Попробуй window.onload вместо $(document).ready();
__________________
Научу себя плохому
|
|
26.08.2013, 16:14
|
Новичок на форуме
|
|
Регистрация: 24.08.2013
Сообщений: 4
|
|
Нашел затыку.
if (document.getElementById("ctl00_ContentMainPage_ctlSeparateProduct_pnlOutofStock") !="undefined")
Косяк вышел из-за моего непонимания чем отличаются null от undefined
|
|
26.08.2013, 19:35
|
|
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Madrabit
|
Нашел затыку.
if (document.getElementById("ctl00_ContentMainPage_ct lSeparateProduct_pnlOutofStock") !="undefined")
Косяк вышел из-за моего непонимания чем отличаются null от undefined
|
тест
<body>
<script>
var some_id = document.getElementById("some_id");
alert(some_id);
if (some_id === null) {
alert("id is null");
} else {
alert("id is not null");
}
if (some_id == undefined) {
alert("id is undefined");
} else {
alert("id is not undefined");
}
if (some_id == 'undefined') {
alert("id is 'undefined'");
} else {
alert("id is not 'undefined'");
}
</script>
читать, как минимум, отсюда http://es5.javascript.ru/x12.html#x12.5
|
|
|
|