Показать сообщение отдельно
  #1 (permalink)  
Старый 22.12.2010, 23:27
Новичок на форуме
Отправить личное сообщение для Toxa Посмотреть профиль Найти все сообщения от Toxa
 
Регистрация: 09.04.2010
Сообщений: 9

Эмулировать клик мышью
Доброго времени суток! Передо мной встала не совсем простая задача.
Пишу скрипт под грейсманки для автоматического сбора подарков с одного сайта. Речь о сервисе http://findpresent.net/. Если вы не знакомы с ним, можете посмотреть примеры реализации там же.
Ну так, собственно, код

var images = document.getElementsByTagName("img")
				for(var i=0;i<=images.length;i++) {
					if(images[i].src.indexOf("http://findpresent.net/uploads/") !== -1) {
						//alert(images[i].parentNode.tagName)
						//alert("success!")
						try{
							clickevent=document.createEvent("MouseEvents")
							clickevent.initEvent("click", true, true)
							images[i].dispatchEvent(onclick)
							//images[i].parentNode.onclick()
						} catch(e) {
						alert(e)
						}
					}
				}

В общем, как вы уже поняли, не удается организовать клик мышью по картинке ни одним из нагугленных способов.
срабатывает исключение с текстом

[Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: file:///C:/Documents%20and%20Settings/%D0%9F%D0%B0%D0%BF%D0%B0/Application%20Data/Mozilla/Firefox/Profiles/o0e7txnf.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js :: anonymous :: line 385"  data: no]


Еще могу добавить, что изображения генерируются в дивах скриптом, подгруженным с сайта findpresent
Получить ссылку на картинку и на див не составляет труда, а вот кликнуть по нему...

пробовал варианты
images[i].onclick()

images[i].dispatchEvent(onclick)
Ответить с цитированием