Что нового

Заставить браузер Firefox/Chrome/IE выполнить JavaScript

ArtistTo

Новичок
Сообщения
42
Репутация
2
В IE скрипт на странице выполняется так
Код:
$oIE.document.parentwindow.execScript($java)

, а как заставить Firefox и Chrome выполнить скрипт (не через адресную строку)? :-X
 
Автор
A

ArtistTo

Новичок
Сообщения
42
Репутация
2
Желание выполнять скрипт не через адресную строку, обосновывалось тем, что при выполнении из нее, страница перезагружалась, эта проблема решилась банальным
Код:
javascript: window.stop();
, теперь вопрос немного другой, как заставить Firefox или Chrome выполнить скрипт в адресной строке (webbrowser.navigate('javascript: ...')), незаметно для юзера?
 

uritalex

Новичок
Сообщения
197
Репутация
3
Можно воспользоваться таким методом но через адресную строку :( т.к. автоматизация этих браузеров дело еще то :

Код:
#include "UIAutomate.au3"

Opt("WinTitleMatchMode", 2)

; Запуск Chrome с параметром --force-renderer-accessibility
; При отсутствии этого параметра доступ к элементам страницы будет запрещён
Run(@ProgramFilesDir & "\Google\Chrome\Application\chrome.exe --force-renderer-accessibility")
$hWnd = WinWait(" - Google Chrome", "", 3)
If Not $hWnd Then Exit

; Создание элемента с использованием дескриптора окна
$oParent = _UIA_GetElementFromHandle($hWnd)

; Поиск кнопки с именем "Новая вкладка" и клик по ней
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_ButtonControlTypeId", "Новая вкладка")
_UIA_ElementMouseClick($oElement)

; Поиск строки адреса и клик по ней
$oElement = _UIA_GetControlTypeElement($oParent, "UIA_EditControlTypeId", "Адресная строка и строка поиска")
_UIA_ElementMouseClick($oElement)

; Переход на сайт
Send("autoit-script.ru{enter}") ; вынести код для вставки в переменную. Еще лучше использовать ControlSend

Более подробно можно посмотреть тут: http://autoit-script.ru/index.php?topic=16780.0
Но вот о незаметности при таком способе говорить не приходится :(
Для Firefox есть на форуме библиотека (ссылки нет под рукой но по поиску ищется на раз ) в ней есть необходимая функция ;) Минус в том что на Firefox нужно будет установить дополнительное расширение (плагин)
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
ArtistTo [?]
, теперь вопрос немного другой, как заставить Firefox или Chrome выполнить скрипт в адресной строке (webbrowser.navigate('javascript: ...')), незаметно для юзера?
А зачем незаметно? Вирус?
 
Автор
A

ArtistTo

Новичок
Сообщения
42
Репутация
2
uritalex сказал(а):
Можно воспользоваться таким методом но через адресную строку :( т.к. автоматизация этих браузеров дело еще то

Хоть что-то, поковыряюсь посижу:smile: Вообще, я от таких фокусов немного удивляюсь... 21 век и я не могу свою 'ЭВМ' запрограммировать банально перейти в браузере по ссылке :( У меня от этого бомбит. Может я нуб, но я реально не знаю, как это сделать, можно найти последовательность адресов, которая хранит URL, найти к ним пути по асм инструкциям, но перейти программно по этому адресу, фиг знает как, даже postmessage мешает работе...

P.S. Уже пытался использовать такие хитрости, как например открытие .html файла с компьютера, в котором прописан скрипт; пытался с CMD стартануть скрипт, вместо url...
Одна печаль...

WSWR сказал(а):
А зачем незаметно? Вирус?
Нет, я делаю программу, которая будет обрабатывать страницы, принимаемые браузерами Chrome/FF/IE, а именно, вырезать нежелательную рекламу (нужно для института...)
Запуск Java Script на странице, это один из вариантов достижения цели. Вообще их два, варианта.
1. Каким-то образом изменять получаемые пакеты с HTML до того, как их отобразит браузер.
или
2. Каким-то образом заставить активный браузер выполнить javascript
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
ArtistTo [?]
Нет, я делаю программу, которая будет обрабатывать страницы, принимаемые браузерами Chrome/FF/IE, а именно, вырезать нежелательную рекламу (нужно для института...)
Запуск Java Script на странице, это один из вариантов достижения цели.
Кто вам мешает освоить написание расширений для Google Chrome, или использовать готовые прокси сервера?
Зачем огород городить на AutoIt?

можно найти последовательность адресов, которая хранит URL, найти к ним пути по асм инструкциям
P.S. После прочитанного чувствуешь себя полным идиотом.
 
Автор
A

ArtistTo

Новичок
Сообщения
42
Репутация
2
Garrett сказал(а):
ArtistTo [?]
Кто вам мешает освоить написание расширений для Google Chrome, или использовать готовые прокси сервера?
Зачем огород городить на AutoIt?

Да... Дело в том, что это все муть дополнительная, я думал про юзерскрипты в браузерах, про расширения, но их программа моя не сможет подключать, т.к. требуется подтверждение, каждый раз в браузере... А суть программы моей, что она отрабатывает и у юзера во всех браузерах, на всех страницах, срабатывает один и тот же скрипт (как у вирусописателей), только мой наоборот полезный. Я не создавал никогда серьезных программ, которые работали бы с сетью, я ничего не понимаю, не знаю, где там трафик принимается, чем он принимается, как он браузерам передается... Забил пока что на этот проект, т.к. два дня уже сижу голову чешу, с места не тронулся :stars:

P.S. Ниже предложили интересный вариант кстати - 'UIAutomate.au3'. Библиотека хорошо читает 'value.value', но не умеет записывать 'Set.Value' или я что-то упустил (не нашел функции записи)...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
ArtistTo [?]
Я не создавал никогда серьезных программ, которые работали бы с сетью, я ничего не понимаю, не знаю, где там трафик принимается, чем он принимается, как он браузерам передается
Оформите тему согласно правилам раздела "Стол заказов" и я перенесу её.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
ArtistTo сказал(а):
вырезать нежелательную рекламу (нужно для института...)
Запуск Java Script на странице, это один из вариантов достижения цели. Вообще их два, варианта.
1. Каким-то образом изменять получаемые пакеты с HTML до того, как их отобразит браузер.
или
2. Каким-то образом заставить активный браузер выполнить javascript
Я бы предложил такие варианты:
1. Для вырезания рекламы уже есть много готового софта, например Adblock Plus;
2. Для выполнения своих скриптов есть Greasemonkey или Tampermonkey;
3. Для автоматизации есть iMacros.
 

uritalex

Новичок
Сообщения
197
Репутация
3
iMacros в Chrome работает не всегда корректно :(
 
Верх