Что нового

[Автоматизация] Выполнить ссылку клавишей только в активной вкладке IE

Godygadu

Новичок
Сообщения
47
Репутация
0
Версия AutoIt: 3.8.1

Описание:
Есть задача. Необходимо выполнить ссылку на активной вкладке при помощи кнопки или комбинаций.
Ссылка типа__
Код:
href="javascript:recorded_tour_actions('stop');"
__
Все это в локальной сети.
Адрес типа ___http://192.168.0.29/view/viewer_index.shtml?id=242
Кнопка должна работать только на активной вкладке IE.
Прошу помощи. Если не сложно то напишите полностью скрипт, чтобы только вставить и выполнить.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu [?]
Есть задача. Необходимо выполнить ссылку на активной вкладке при помощи кнопки или комбинаций.
Попробуйте так:
Код:
HotKeySet('+a', '_RecordedTourActions') ; SHIFT+A
HotKeySet('{ESC}', '_Exit') ; ESC

While 1
	Sleep(250)
WEnd

Func _RecordedTourActions()
	$o_IE = _IEAttach(WinGetTitle(WinGetHandle('[CLASS:IEFrame]')), 'WindowTitle')
	$o_IE.document.parentWindow.execScript("setTimeout(function(){recorded_tour_actions('stop');},1)")
EndFunc

Func _Exit()
	Exit
EndFunc
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Спасибо за помощь, но у меня выдает ошибку в строке 9 -error: unknown function name
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Уважаемый Garret данный скрипт не хочет работать. Может вам предоставить код страницы или еще что? Просто для меня это очень необходимо и лишь только autoit может дать этот функционал. Спасибо за помощь.


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

Может вот это пригодится <a target="_self" href="javascript:recorded_tour_actions('stop');"><img width="27" border="0" height="27" alt="Stop" title="Stop" src="/pics/stop_blue_button_27x27px.gif"></img>


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

Приходится пересмотреть действия. Я создал на странице отдельную ссылку, которая делает тоже, что и этот ява-скрипт. Теперь можно сделать скрипт который бы нажимал на ссылку с командой. Текст на ссылке "stop". Но все это должно быть именно в активной ссылке IE


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

в активном табе IE
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu [?]
данный скрипт не хочет работать
Вы в начале скрипта дописали то, что советовал madmasles?
Какой браузер вы используете IE7, 8, 9?

Может вам предоставить код страницы или еще что?
Пожалуй, полный код страницы не помешает. Прикрепите его к вашему сообщению.
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Используется IE 9. Но как я говорил условия выполнения скрипта можно изменить. То есть осуществить нажатие на кнопку-ссылку, клавишей, с надписью "stop". Также имеется код который будучи включенным в страницу может останавливать действие, но дело в том, что для каждой страницы надо прописывать его индивидуально. Я имею ввиду, что он выполняется только с конкретно указанным IP.
Вот он
Код:
http://IP/axis-cgi/recordedtour/stopplayback.cgi?schemaversion=1.0&recordedtourid=0

Вот код непосредственно кнопки
Код:
<img src="/pics/stop_blue_button_27x27px.gif" title="Stop" alt="Stop" height="27" border="0" width="27">









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

Полный код кнопки.
Код:
<a href="javascript:recorded_tour_actions('stop');" target="_self"><img src="/pics/stop_blue_button_27x27px.gif" title="Stop" alt="Stop" height="27" border="0" width="27"></a>


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

Это страница
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Как ни странно, но данный пункт во вкладке совместимость в свойствах ярлыка IE не активен и не может быть включен. А при чем совместимость и с какой операционной системой он должен быть совместим?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu [?]
А при чем совместимость
Каждая версия IE содержит свои уникальные ошибки, особенности отображения веб-страниц, а также не поддерживает какие-то свойства CSS. В итоге разработчиками IE было принято решение добавить режим совместимости. Для быстрого переключения сайтов в этот режим возле адресной строки добавлена специальная кнопка.
F12 - Сервис > Средства разработчика
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
К сожалению даже это не помогает. Может вы сделаете клик по ссылке клавишей? А она уже выключит. Сейчас я пользуюсь нажатием на ссылку по координатам оной, но это крайне неудобно, т.к. может меняться масштаб страницы. Спасибо за то что не оставляете без внимания. Если интересно могу рассказать для чего это все делается.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Попробуйте:
Код:
#include <IE.au3>
HotKeySet('+a', '_RecordedTourActions') ; SHIFT+A
HotKeySet('{ESC}', '_Exit') ; ESC

While 1
    Sleep(250)
WEnd

Func _RecordedTourActions()
    $o_IE = _IEAttach('Live view - AXIS Q6034-E Network Camera')
	; Вариант 1 - запуск JScript функции
	$o_IE.document.parentWindow.execScript("setTimeout(function(){recorded_tour_actions('stop');},1)")
	; Вариант 2 - клик по кнопке
	;$o_Link = _IELinkGetCollection($o_IE, 5)
	;_IEAction($o_Link, 'click')
EndFunc

Func _Exit()
    Exit
EndFunc

Запускаете скрипт, активируете IE(страница должна быть загружена) и жмёте на SHIFT+A
Если первый вариант не сработает, закомментируйте его и раскомментируйте второй, при этом, не забудьте остановить скрипт.
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
1- ый вариант не работает
2- ой выдает ошибку в строке 12.
Может нужно указать логин\пароль? Я и сам не знаю что сделать. А возможно сделать, что бы нажималась ссылка с определенной надписью? То есть изменил масштаб, а она все равно нажимается. И еще вот эта надпись Live view - AXIS Q6034-E Network Camera в каждой вкладке разная.
Спасибо за вашу помощь.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu [?]
Live view - AXIS Q6034-E Network Camera в каждой вкладке разная
Тогда проверьте так, подставьте в _IEAttach то, что находится на активной вкладке между:
Код:
<title>Live view - AXIS Q6034-E Network Camera</title>
И проверьте скрипт снова.
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Там находится эта надпись. Но на других вкладках надписи другие. Я думаю, что такой вариант не подойдет, потому что идет вариация между названий вкладок. А почему Вы не хотите сделать по нажатию на ссылку: по ее названию- "stop" ? Можно ли сделать так, что бы находилась надпись и кликалась, а не выполнялся java-скрипт.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Я не вижу, что у вас творится на компьютере, и из скудной информации я пытаюсь вам помочь!

Godygadu [?]
А почему Вы не хотите сделать по нажатию на ссылку: по ее названию- "stop" ?
Потому что и этот вариант, скорее всего у вас работать не будет!!! Почему?

Вот почему:
Но на других вкладках надписи другие.
Естественно, если так задумал программист ПО!
Я же вам писал, поменяйте в _IEAttach заголовок, он находится в HTML теге <title>. Сохраните скрипт, запустите, активируйте браузер с той самой страницей из HTML кода которой вы взяли заголовок, и нажмите комбинацию hotkey. Если не чего не происходит, значить смотрите внимательно текст заголовка, в нем, скорее всего, присутствуют паразитные пробелы:
Код:
Live view  - AXIS Q6034-E Network Camera
А должно быть так:
Код:
Live view - AXIS Q6034-E Network Camera

После _IEAttach можете для наглядности прописать строку:
Код:
ConsoleWrite(IsObj($o_IE) & @CR)

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



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

Заголовок между:
Код:
<title>Live view - AXIS Q6034-E Network Camera</title>
должен точно соответствовать заголовку в _IEAttach.
 
Верх