Javascript.RU

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

Страница, на которую идет перенаправления находится на том же домене? Тогда можно через куки/sessionStorage. Иначе - через get-параметр в строке запроса ( /page?button=x к примеру)
Ответить с цитированием
  #12 (permalink)  
Старый 18.03.2013, 13:40
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Опишу задачу еще раз, но упрощенее и понятнее.

Есть кнопка на странице index.html
<a href="javascript: buttonCheckout();" class="buttonQuick" id="buttonCheckout">Стандартный заказ</a>

При нажатии на кнопку, должен произойти переход на страницу outside.html, и, на этой странце, АВТОМАТИЧЕСКИ, т.е. без участия человека, произойти клик на кнопке
<a class="standart-order" onclick=""> <!-- <button > --> Стандартный заказ <!-- </button> --> </a>

Соответсвенно, JS код
<script type= "text/javascript">
function buttonCheckout()
{
var url = document.getElementById('id_buttonCheckout');
document.location.href = 'outside.html';
document.querySelector('standart-order').click();
};
</script>

Т.е. переход происходит, тут все ок. Но вот кнопка автоматически не нажимается. Вот в чем проблема.

А если вставлять JS код на странице outside.html, то как отследить, какая кнопка была нажата на index.html?

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

а код document.querySelector('standart-order').click(); отрабатывает, если обе кнопки находятся на одной странице.
Ответить с цитированием
  #14 (permalink)  
Старый 18.03.2013, 13:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Godwar
И - да, все страницы находятся на одном домене.
Ну тогда можно записывать метку в sessionStorage, на целевой странице проверять эту метку (и стирать ее) и делать нужные действия.

Как альтернативный вариант, я уже предлагал выше, добавляем ссылке query-параметр, проверяем его либо на сервере, вставляя некий код, либо на самой странице вытягивая через location.href и опять же, производя нужные действия.
Ответить с цитированием
  #15 (permalink)  
Старый 18.03.2013, 13:56
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Уверен, что это бы сработало, но для меня очень сложно - я новичек в JS. И, я так понимаю, более простого способа нет?
Типа - тут нажал, там вызвалась нужная функция js и нажала на кнопку.
Ответить с цитированием
  #16 (permalink)  
Старый 18.03.2013, 14:54
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Хорошо, просто не получится. Это понятно.

Итак, если мы передаем на index.html значение таким образом:

<script type= "text/javascript">
function buttonCheckout()
{
document.location.href = 'outside.html/?standart-order';
}
</script>


то на outside.html ловим скриптом:

<script type= "text/javascript">
function buttonCheckout()
{
var standart-order=location.search.substring(1);
document.querySelector('.standart-order').click();
}
</script>

Вот тут я уже плаваю. Есть варианты?
Ответить с цитированием
  #17 (permalink)  
Старый 18.03.2013, 16:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Godwar, на верном пути. Только имя переменной не может содержать знак дефис. И наверно лучше не query-строкой передавать, а через хэш-составляющую.
location.href = 'outside.html/#standart-order';


...

<script>
(function(){
    var hash = location.hash.substring(1);
    if (hash) {
        var element = document.querySelector('.' + hash);
        if (element) {
            element.click();
        }
    }
})();
</script>


Этот скрипт разместить ниже кнопки, чтобы на момент его выполнения кнопка уже присутствовала в документе. querySelector не работает в IE7 если что. Если нужна его поддержка, то либо может на странице подключена jquery, либо подключить polyfill, либо использовать выборку по id.
Ответить с цитированием
  #18 (permalink)  
Старый 19.03.2013, 14:31
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Увы, пока не работает.
JS код на index.html:

<script type= "text/javascript">
function buttonCheckout()
{	
    location.href = 'http://bekaa.tmweb.ru/checkout/#standart_order';
}
</script>

и кнопка, которую нажимает пользователь:
<a href="javascript: buttonCheckout();" class="btn btn-large btn-success buttonCheckout" id="buttonCheckout">Стандартный заказ</a>


Код JS на outside.html
{literal}
<script>
	(function(){
	    var hash = location.hash.substring(1);
	    if (hash) {
	        var element = document.querySelector('.' + hash);
	        if (element) {
	            element.click();
	        }
	    }
	})();
</script>
{/literal}

и кнопка, которая должна автоматически нажиматься:
<a class="standart-order btn btn-large btn-success pull-right standart_order" onclick="" id="standart_order" name="standart_order"> 
    <!-- <button > --> Стандартный заказ <!-- </button> -->
  </a>


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

кнопка выше, чем скрипт, точно?
Если в консоли выполнить document.querySelector('.standart_order').click() , то результат имеется?
Ответить с цитированием
  #20 (permalink)  
Старый 19.03.2013, 17:33
Интересующийся
Отправить личное сообщение для Godwar Посмотреть профиль Найти все сообщения от Godwar
 
Регистрация: 15.03.2013
Сообщений: 19

Кнопка выше, чем скрипт - все верно.

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать редирект или заблокировать кнопку в скрипте... 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