Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Имитация события (https://javascript.ru/forum/events/22844-imitaciya-sobytiya.html)

Sierra 02.11.2011 22:05

Имитация события
 
Столкнулся с такой проблемой, надо на подгруженной в фрейме странице сымитировать действие человека. Сымитировать надо нажатие на ссылку с жестко указанным id. Вот код:

<div class="spanvote" style="float: left;">
<div>
<a style="color: rgb(224, 0, 233); font-size: 11px;" id="154" href="javascript:void(0);">Проголосовать</a>
</div>
</div>


Пытался сделать так:

<html>
<head>

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

</head>
<body>

<iframe id="autovote1" src="http://www.mysyte.com./" width="1" height="1" frameborder="0" align="top" ></iframe>

</body>
</html>


Но оно что то не работает, подскажите что я сделал не так?

ПыСЫ Пардон за нубский вопрос но в ЯваСкрипт я пока что новичок :)

trikadin 03.11.2011 02:51

Во-первых, не работает вот эта строка:
document.getElementById('autovote1').getElementById('154').onclick()

getElementById работает только как метод document.
Во-вторых, onclick() замените на click().

Т. е., должно быть так:
document.getElementById('154').click()


В третьих, а где, собственно, элемент #154?

И в четвёртых, этот код выполнится до того, как элемент будет загружен.

Sierra 03.11.2011 12:33

Цитата:

Сообщение от trikadin (Сообщение 134193)
Во-первых, не работает вот эта строка:
В третьих, а где, собственно, элемент #154?

Элемент #154 находится на странице которая подгружается во фрейме (код самой ссылки я привел выше), и немного почитав различные факи возник еще один вопрос может ли ЯваСкрипт выполнить действие с страницы одного домена на которой подгружена страница во фрейме с другого домена (то есть Ява Скрипт отрабатывается на одной странице, и имитирует действие на другой странице подгруженной во фрейме)? В общем говоря мне надо реализовать таким образом автоголосовалку :)

Цитата:

Сообщение от trikadin (Сообщение 134193)
Во-первых, не работает вот эта строка:
document.getElementById('autovote1').getElementById('154').onclick()

getElementById работает только как метод document.
Во-вторых, onclick() замените на click().

Т. е., должно быть так:
document.getElementById('154').click()

А как тогда Ява Скрипт поймет где именно ему искать данный элемент? Или он ищет везде? Или надо так указывать?

document.getElementsByTagName("iframe").getElementById('154').click()


Цитата:

Сообщение от trikadin (Сообщение 134193)
И в четвёртых, этот код выполнится до того, как элемент будет загружен.

Помогите реализовать это правильно, буду очень благодарен :thanks:

Sierra 04.11.2011 00:11

Чет ничего не пойму. Вот так делаю тоже не работает

<html>
<head>
</head>
<body>
	 
<iframe src="http://www.mysyte.com./" width="1" height="1" frameborder="0" align="top" ></iframe>

<script type="text/javascript">
window.onload=function(){
document.getElementById('154').click()
}
</script>
	 
</body>

</html>

После click() надо ставить знак ; или нет ? Что я не так сделал ?

melky 04.11.2011 00:39

Цитата:

Сообщение от Sierra (Сообщение 134218)
может ли ЯваСкрипт выполнить действие с страницы одного домена на которой подгружена страница во фрейме с другого домена (то есть Ява Скрипт отрабатывается на одной странице, и имитирует действие на другой странице подгруженной во фрейме)?

нет. почитайте про политику общего происхождения, если вам интересно.

Sierra 04.11.2011 00:53

Цитата:

Сообщение от melky (Сообщение 134340)
нет. почитайте про политику общего происхождения, если вам интересно.

То есть последний приведенный код не работает именно поэтому? А на Джейквери реализовать можно то что мне надо?

melky 04.11.2011 00:56

да.
Цитата:

Сообщение от Sierra (Сообщение 134347)
А на Джейквери реализовать можно то что мне надо?

альтернативный вопрос : "сможет ли человек бегать быстрее, если он оденет шапку из фольги на голову ?".

Sierra 04.11.2011 01:04

Цитата:

Сообщение от melky (Сообщение 134350)
да.

альтернативный вопрос : "сможет ли человек бегать быстрее, если он оденет шапку из фольги на голову ?".

Следует полагать что Вы таким образом намекнули мне что Джейквери в этой ситуации тоже не будет работать :) ?

melky 04.11.2011 01:06

ясное дело. чем могут помочь функции, написанные на js, сделать то, чего не может сам js ?

я думаю, вы меня поняли :)

Sierra 04.11.2011 01:13

Понятно, всем спасибо :) !


Часовой пояс GMT +3, время: 01:26.