Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 19.03.2013, 18:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Значит нужно поставить точку останова, выполнять пошагово и поглядеть что в скрипте происходит и что идет не так.
Ответить с цитированием
  #22 (permalink)  
Старый 20.03.2013, 13:10
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Прошел скрипт по каждой строке.

итог выполнения скрипта:

this -> Window #standart_order
arguments -> []
element -> a.standart_order
hash -> "standart_order"
toString -> function()

Т.е. хеш распознал, но на строке element.click(); клик не происходит

Последний раз редактировалось Godwar, 20.03.2013 в 13:45.
Ответить с цитированием
  #23 (permalink)  
Старый 20.03.2013, 13:56
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Есть варианты?
Ответить с цитированием
  #24 (permalink)  
Старый 20.03.2013, 14:35
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Godwar
Есть варианты?
т.е вы хотите запустить обработчик события клика(какой у вас отсутсвует), но не выполнив клик перейти по ссылке?

1 Переходы по ссылкам, возможны только после клика пользователем на ссылке -политика безопасности браузера
2 Вызов функции обработчика клика , и программная эмуляция клика вещи разные
Ответить с цитированием
  #25 (permalink)  
Старый 20.03.2013, 15:15
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Обнаружил любопытную деталь.
когда выполняется скрипт
<script>
	    (function(){
        var hash = location.hash.substring(1);
	        if (hash) {
	            var element = document.querySelector('.' + hash);
	            if (element) {
	                element.click();
	            }
	        }
	    })();
</script>


то уже на строке <if (element)> дебаггер показывает в строке <element.click();> инициализированную переменную "element" как "a.standart_order"
а скрипт a.standart_order.click() через консоль, естесственно, не работает. А вот document.querySelector('.standart_order').click() через консоль работает.

Поэтому я пределал скрипт на такой:
<script type="text/javascript">
	(function(){
	    var hash = location.hash.substring(1);
	    if (hash) {
	        var element = ('.' + hash);
	        if (element) {
	            document.querySelector('element').click();
	        }
	    }
	})();
</script>


Тогда в строке <document.querySelector('element').click();> переменная "element" выглядит как ".standart_order"

Но при этом вываливается ошибка:

TypeError: document.querySelector(...) is null
(?) /checkout/ (строка 782)
() /checkout/ (строка 777)
document.querySelector('element').click(); /checkout/ (строка 782)
Ответить с цитированием
  #26 (permalink)  
Старый 20.03.2013, 15:21
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Сообщение от dmitriymar Посмотреть сообщение
т.е вы хотите запустить обработчик события клика(какой у вас отсутсвует), но не выполнив клик перейти по ссылке?

1 Переходы по ссылкам, возможны только после клика пользователем на ссылке -политика безопасности браузера
2 Вызов функции обработчика клика , и программная эмуляция клика вещи разные
document.querySelector('.standart_order').click() отрабатывается, т.е. клик пользователя не требуется.
Ответить с цитированием
  #27 (permalink)  
Старый 20.03.2013, 15:30
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Возможно, вы правы, dmitriymar. Даже в этом варианте
<script type="text/javascript">
	(function(){
	    var hash = location.hash.substring(1);
	    if (hash) {
	        var element = document.querySelector('.' + hash);
	        if (element) {
	            document.querySelector('.standart_order').click();
	        }
	    }
	})();
</script>

кнопка не нажимается.
хотя сама по себе строка document.querySelector('.standart_order').click(); через консоль отрабатывается

Последний раз редактировалось Godwar, 20.03.2013 в 15:47.
Ответить с цитированием
  #28 (permalink)  
Старый 20.03.2013, 15:46
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

<script type="text/javascript">
	(function(){
	    var hash = location.hash.substring(1);
	    if (hash) {
	        var element = document.querySelector('.' + hash);
	        if (element) {
	             alert(hash);
	        }
	    }
	})();
</script>

отрабатывает и показывает текущий хеш
Ответить с цитированием
  #29 (permalink)  
Старый 20.03.2013, 15:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Странная история. Если элемент был найден, то условие if (element) просто обязано выполниться. Попробуйте убрать условие и всегда вызывать element.click(). Ваши варианты неверные.
Ответить с цитированием
  #30 (permalink)  
Старый 20.03.2013, 16:19
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Быть может дело в том, что событие на клик этой кнопки отрабатывает другой скрипт?
<script type="text/javascript">
$(document).ready(function(){
		 $('.standart_order').click(function(){
		 $('#standart-order-block').css("display","block");
		 $('#quick-order-prev').css("display","none");
		 $('#standart-order-prev').css("display","none");
		 $('#credit-order-prev').css("display","none");

                  });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать редирект или заблокировать кнопку в скрипте... allanmiln AJAX и COMET 5 16.02.2013 21:13
jquery анимация и редирект после SunYang Events/DOM/Window 5 17.05.2012 12:10
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
Автоматический клик по <a> во фрейме Mxnr Events/DOM/Window 1 05.04.2010 18:34
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06