Что нового

Как нажать на кнопку (javascript)

Ranos1982

Новичок
Сообщения
130
Репутация
1
Подскажите,есть кнопка вида :

javascript:blum:arent.n3t("Aльoнк@")

как на нее нажать? Совсем ума не приложу..
Визуально (это чат) кнопка с виду такая - Aльoнк@
В DebugBar,при наведении на обьект - ничего не отображается совсем ((

Заранее благодарен ! :whistle:

Пытался так (ф-цию сам писал,просто для форумов):
Код:
Func searchHref($o_object, $substring)
	Local $oLink, $oLinks, $iAllLinks

	Dim $oLinks = _IELinkGetCollection($o_object)
	Dim $iAllLinks = @extended
	For $counter = 0 To $iAllLinks
		$oLink = _IETagNameAllGetCollection($o_object,$counter)
		If StringInStr($oLink.href, $substring) <> 0 Then
			Return $oLink.href
			ExitLoop
		EndIf
	Next
EndFunc   ;==>searchHref


но,увы...
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Garrett , вот к примеру уже другой обьект :

<A href='javascript:blum:arent.n3t("!!!!!cтpoйнaя_в_30")'><FONT color=#9000c0>!!!!!cтpoйнaя_в_30</FONT></A>

и еще один :

<A href='javascript:blum:arent.pic("M")'><IMG border=2 src="/ch/pics/M.gif"></A>

Вот как с ними мне работать - я незнаю...
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
http://autoit-script.ru/index.php?topic=4850.0
поройся в этой теме... =) думаю там 90% ответа на вопрос.
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
zlo-kazan если там то,о чем говорит название - то это просто абсурд,это совсем не то,что я пытаюсь узнать...это обход,а не решение моей проблемы..
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Логин / пароль для теста,кому не сложно.....: АлексВон19/112233

вот еще пример :

<A href='javascript:blum:arent.n3t("3eлeнoглaзaя_29")'><FONT color=#006600>3eлeнoглaзaя_29</FONT></A>

А начинается все с этого :

<FORM action=javascript:blum:arent.drawus()><NOBR><FONT size=-1 face=arial,helvetica><FONT color=red>
<CENTER><B><U>Девушки</U></B> (<B>187</B>)</CENTER><IMG src="/ch/pics/avl.gif">


Добавлено:
Сообщение автоматически объединено:

Garrett , чтото не получилось у меня ....использовав ваши советы :'(
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
Ranos1982
1. Не суди книгу по обложке... :naughty:
2. Если лень читать и разбираться, что к чему, то так и напиши... и я не буду больше тратить свое время на тебя...
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
zlo-kazan прошу прощения за тон.
По ссылке уже давно перешел...но,увы.нет,оно сработает то,но нужно именно както совершить клик в чате по юзеру...
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Garrett , прошу прощения,сглупил.
Есть сайт - bizarre.kiev.ua,логин и пароль я указал.Прошу помочь в чате кликнуть на юзера,тоесть совершить клик средствами autoit.Вход в чат я уже автоматизировал.

А любой ник,это javascript:blum:arent.n3t("тут ник")..если что,примеры приводил...просто сам уже какой час мучаюсь..


уже дошел даже до
Код:
_IEHeadInsertEventScript
,но как пользоватся - не понимаю..
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Ranos1982 сказал(а):
уже дошел даже до
Код:
_IEHeadInsertEventScript
,но как пользоватся - не понимаю..
Обойдёмся пока без "хирургического" вмешательства :smile:
Код:
#include <IE.au3>
$oIE = _IECreate("http://bizarre.kiev.ua")

$oFrame = _IEFrameGetCollection ($oIE, 1)
$oForm = _IEFormGetObjByName($oFrame, "qw")
$oLogin = _IEFormElementGetObjByName ($oForm, "name")
$oPassw = _IEFormElementGetObjByName($oForm, "pass")
_IEFormElementSetValue($oLogin, "АлексВон19")
_IEFormElementSetValue($oPassw, "112233")
_IEFormSubmit($oForm)
$oFrame = _IEFrameGetCollection ($oFrame)
$oMainFrame = _IEFrameGetCollection ($oFrame, 2)
$oLinks = _IELinkGetCollection ($oMainFrame)
For $oLink In $oLinks
	; Синячёк  - это ник участника. Соответственно если его нет в чате, значить нет click`а :)
    If StringStripWS(_IEPropertyGet($oLink, "innerText"), 3) = "Cинячoк" Then
		_IEAction($oLink, "click")
	EndIf
Next
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Garrett странно,но почемуто у меня Ваш пример не работает.....проверял уже неа разные ники,но всеравно никак.У вас какой IE? Восьмой? У меня - да.


Добавлено:
Сообщение автоматически объединено:

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


Добавлено:
Сообщение автоматически объединено:

Garrett ,а вот кликнуть в самом списке у меня не получается - тот что справа.Я вообще не могу найти его/фрейм.
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Боги помиловали меня и вместо пару троек часов,я решил проблему всеголишь за 1.5 часа )))
Просто вызывал форму по имени,а не по индексу.Коментарии от Garrett все же был бы не против увидеть...

Код:
$oMainFrame = _IEFrameGetObjByName($oFrame,'us')
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Ranos1982 [?]
Коментарии от Garrett все же был бы не против увидеть...
Код:
#include <IE.au3>
; Тут всё ясно!
Dim $sLogin = "АлексВон19"
Dim $sPassw = "112233"
; Пользователь, на котором нужно кликнуть.
Dim $sUserName = "!!!Cвeтик!!!!" 
; Поехали!
$oIE = _IECreate("http://bizarre.kiev.ua")
;~ Получаем ссылку на фрейм с именем "main"
$oMainFrame = _IEFrameGetObjByName($oIE, "main")
;~ Заходим в чат.
$oForm = _IEFormGetObjByName($oMainFrame, "qw")
$oLogin = _IEFormElementGetObjByName ($oForm, "name")
$oPassw = _IEFormElementGetObjByName($oForm, "pass")
_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPassw, $sPassw)
;~ Отправляем данные на сервер.
_IEFormSubmit($oForm)
;~ Получаем коллекцию фреймов в главном фрейме "main".
$oFrames = _IEFrameGetCollection ($oMainFrame)
;~ Получаем ссылку на фрейм с именем "us".
$oUserFrame = _IEFrameGetObjByName($oFrames,'us')
; Ждём загрузки фрейма "us".
Do
	Sleep(250)
Until  _IEPropertyGet($oUserFrame, "InnerText") <> ""
; Получаем коллекцию ссылок на пользователей из фрейма "us"
$oLinks = _IELinkGetCollection($oUserFrame)
For $oLink In $oLinks
    ; Ищем пользователя (он прописан у нас в $sUserName)
    ; ЕСЛИ находим, выполняем клик.
    If StringStripWS(_IEPropertyGet($oLink, "innerText"), 3) = $sUserName Then
        _IEAction($oLink, "click")
		ExitLoop
    EndIf
Next
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Спасибо больше,более-менее стало понятно.... :beer: :IL_AutoIt_1:
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
Garret, подскажите пожалуйста,как вытянуть именно текст сообщения ?

Код:
$oIE = _IEAttach('Chat')

$oMainFrame = _IEFrameGetObjByName($oIE, "main")
$oFrames = _IEFrameGetCollection($oMainFrame)
$oUserFrame = _IEFrameGetObjByName($oFrames, 'priv')




$oLinks = _IELinkGetCollection($oUserFrame)
For $oLink In $oLinks
	If $oLink.href <> '' And  StringInStr($oLink.href, 'n3t')  Then
		MsgBox (16,'',$oLink.InnerText)
	EndIf
Next

так вытягиваю ник каждого..


Добавлено:
Сообщение автоматически объединено:

так тоже не работает...

Код:
$oLinks = _IELinkGetCollection($oUserFrame)
For $oLink In $oLinks
	If $oLink.href <> '' And StringInStr($oLink.href, 'n3t') Then
		$rrr = _IETagNameGetCollection($oUserFrame, "U", $oLink)

			MsgBox(16, '', $oLink.InnerText & @CRLF & $rrr.href)


	EndIf
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Ranos1982 [?]
как вытянуть именно текст сообщения ?
Методом InnerText.
Для любого тега или коллекции, метод InnerText возвратит вам текст между тегами (внутренний текст).
 
Автор
R

Ranos1982

Новичок
Сообщения
130
Репутация
1
скоро сума сойду ! никак не пойму как отправить нику сообщение,ни есть,поле - есть ! но нивкакакую в поле 'ex' не вставляется сообщение!


Добавлено:
Сообщение автоматически объединено:

Код:
Global $oIE = _IEAttach('Chat')

$oMainFrame = _IEFrameGetObjByName($oIE, "main")
$oFrames = _IEFrameGetCollection($oMainFrame)
$oUserFrame = _IEFrameGetObjByName($oFrames, 'priv')


$time = ''
$user = ''

$oLinks = _IELinkGetCollection($oUserFrame)
For $oLink In $oLinks
    Sleep(100)
	If $oLink.href <> '' And StringInStr($oLink.href, 'ntt') Then
			$time = $oLink.InnerText
			ConsoleWrite ($time & ' ')
	EndIf
	If $oLink.href <> '' And StringInStr($oLink.href, 'n3t') Then
			$user = $oLink.InnerText
			ConsoleWrite ($user & @CRLF)
		EndIf

$oForm = _IEFormGetObjByName($oIE, "say")
$oLogin = _IEFormElementGetObjByName ($oForm, "EX")
_IEFormElementSetValue($oLogin, "text")

MsgBox (16,'','есть текст?')
Next



вот причину,по которой это не работает - я не могу понять


Добавлено:
Сообщение автоматически объединено:

Garrett

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

axlwor

Скриптер
Сообщения
657
Репутация
147
потому что форма отправки находится в другом фрейме
 
Верх