Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Повторное выполнение функции при нажатии 
:(
    Опции темы
serezhka1986
Дата 23.11.2011, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 12.6.2009

Репутация: нет
Всего: 0



Стоит задача выполнить функцию при нажатии на ссылку.
Есть ссылка:
Код

<a href="/auth/" onclick="return authFormWindow.ShowLoginForm()">Войти</a>

Мне нужно на странице произвольно выполнить событие нажатия на ссылку.
Что-то типа:
Код

<script type="text/javascript">return authFormWindow.ShowLoginForm()</script>

Подскажите, пожалуйста, решение данной задачи.  smile 

Это сообщение отредактировал(а) serezhka1986 - 28.11.2011, 12:31
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
serezhka1986
Дата 28.11.2011, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 12.6.2009

Репутация: нет
Всего: 0



Нашел в интернете такое решение
1. Задать ID для ссылки:
Код

<a id="jslink" href="/auth/" onclick="return authFormWindow.ShowLoginForm()">Войти</a>

2.Вызывать скрипт:
Код

<script type="text/javascript">
      document.getElementById('jslink').onclick();
</script>

Но у меня почему-то не работает данный метод.  smile 
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
bars80080
Дата 28.11.2011, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Код

<script type="text/javascript">
      document.getElementById('jslink').click();
</script>



Добавлено через 57 секунд
а ещё лучше просто:



Код

<script type="text/javascript">
      authFormWindow.ShowLoginForm();
</script>


PM MAIL WWW   Вверх
ksnk
Дата 28.11.2011, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



Цитата(serezhka1986 @  28.11.2011,  12:47 Найти цитируемый пост)
Но у меня почему-то не работает данный метод.

Вероятно, следует дождаться загрузки страницы
Код

<script type="text/javascript">
function do_it(){
  authFormWindow.ShowLoginForm();
}
</script>

<body onload="do_it()">
...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
serezhka1986
Дата 28.11.2011, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 12.6.2009

Репутация: нет
Всего: 0



Первый метод ничего не дает - функция клика не выполняется.
А второй вообще работает коряво. Вроде и срабатывает, но результат такого вызова и обычного клика отличается.

Добавлено через 3 минуты и 36 секунд
Цитата(ksnk @  28.11.2011,  13:02 Найти цитируемый пост)
Вероятно, следует дождаться загрузки страницы


Так мне ведь не нужно вызывать функцию при загрузке страницы, а при определенном условии. Например:
Код

<?if ($arResult["SHOW_ERRORS"] == "Y" && $arResult["ERROR"] === true):?>
<script type="text/javascript">return authFormWindow.ShowLoginForm()</script>
<?endif?>

--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
serezhka1986
Дата 28.11.2011, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 12.6.2009

Репутация: нет
Всего: 0



Проблема решена!!!  smile 
Работало коряво потому, что надо было ждать загрузки страницы. Спасибо ksnk и bars80080!
Кому интересно, решение такое:
Код

<?if ($arResult["SHOW_ERRORS"] == "Y" && $arResult["ERROR"] === true):?>

<script type="text/javascript">
  function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') { window.onload = func;} 
  else {window.onload = function() { if (oldonload) {oldonload();}func();}}
}
addLoadEvent(function() {
 authFormWindow.ShowLoginForm();
}); 
</script>

<?endif?>

Это загрузка Javascript (без onload). Материал взял отсюда: http://deer.org.ua/2008/06/27/4


--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.