Повторное выполнение функции при нажатии

 
0
 
JavaScript
ava
serezhka1986 | 23.11.2011, 14:18
Стоит задача выполнить функцию при нажатии на ссылку.
Есть ссылка:

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

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

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

Подскажите, пожалуйста, решение данной задачи. smile
Kommentare (5)
ava
serezhka1986 | 28.11.2011, 12:47 #
Нашел в интернете такое решение
1. Задать ID для ссылки:

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

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

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

Но у меня почему-то не работает данный метод. smile
ava
bars80080 | 28.11.2011, 12:50 #

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



später ergänzt:
а ещё лучше просто:




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

ava
ksnk | 28.11.2011, 13:02 #
Цитата (serezhka1986 @ 28.11.2011, 12:47 findReferencedText)
Но у меня почему-то не работает данный метод.

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

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

<body onload="do_it()">
...
ava
serezhka1986 | 28.11.2011, 13:06 #
Первый метод ничего не дает - функция клика не выполняется.
А второй вообще работает коряво. Вроде и срабатывает, но результат такого вызова и обычного клика отличается.

später ergänzt:
Цитата (ksnk @ 28.11.2011, 13:02 findReferencedText)
Вероятно, следует дождаться загрузки страницы


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

<?if ($arResult["SHOW_ERRORS"] == "Y" && $arResult["ERROR"] === true):?>
<script type="text/javascript">return authFormWindow.ShowLoginForm()</script>
<?endif?>
ava
serezhka1986 | 28.11.2011, 13:56 #
Проблема решена!!! 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

Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden