Отправить код Javascript в браузер - PullRequest
3 голосов
/ 14 февраля 2011

Есть ли способ отправить команды javascript в открытую сеть, запущенную в браузере, из оболочки?

Допустим, у меня есть stackoverflow.com, открытый с Chrome.Ну, я хотел бы отправить что-то вроде

alert('hi!');

из оболочки, с чем-то похожим на следующее:

$ send -t Chrome -w "stackoverflow.com" -c "alert('hi!')"

Мне было интересно, потому что, если я могу написать предупреждение(«Привет!») на консоли JavaScript в Chrome, я должен быть в состоянии сделать то же самое с вызовом где-нибудь, верно?

Я видел node.js, но я думаю, что это невозможно,пожалуйста, дайте мне знать, если я ошибаюсь.

Я знаю, что вопрос может показаться странным, но мне любопытно, заранее спасибо:)

Ответы [ 5 ]

1 голос
/ 14 февраля 2011

Для IE кажется, что вы можете использовать старый добрый VBScript: http://www.autohotkey.com/forum/topic7642.html

Теперь у меня с IE8 все отлично работает.:)

Редактировать: чтобы открыть этот вопрос и предупредить значение JS, используйте этот код как .vbs файл и запустите его:

Dim oIE

Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = 1

oIE.Navigate "/3961671/otpravit-kod-javascript-v-brauzer"

Do While (oIE.Busy)
   Wscript.Sleep 10
Loop

oIE.Navigate "javascript:alert(fkey);"
0 голосов
/ 18 декабря 2014

Вы можете отправить произвольный код в браузер через адресную строку! Например, в стиле AutoHotKey ,

send F6 //focus the address bar
send ctrl+v  //given that your code is in clipboard
send enter

Теперь есть еще один вопрос. Можем ли мы получить возвращаемое значение кода инъекции? Ответ ДА!

Назначьте возвращаемое значение на document.title и получите заголовок окна из вашего приложения.

Если возвращаемое значение слишком длинное (например, строка формата JSON), сделайте трюк, который

document.title='calculating...';
document.title=returnValue.subString(0,20);
sleep(10);
document.title=returnValue.subString(20,40);
sleep(10);
document.title=returnValue.subString(40,60);
...
document.title='finished';

Надеюсь, это сработает.

0 голосов
/ 14 февраля 2011

Вы можете отправить JavaScript в Firefox через расширение jssh.

http://www.croczilla.com/bits_and_pieces/jssh/

Это то, что среда тестирования Watir использует для автоматизации Firefox.

Я не знаю эквивалента для Chrome.

0 голосов
/ 14 февраля 2011

Это полностью зависит от браузера, чтобы обеспечить такую ​​функциональность.На самом деле, форма вашей проблемы не специфична даже для браузеров:

Мне было интересно, потому что, если я смогу [предоставить какой-то вид ввода] [программе], чтобы сделать ее [сделать что-нибудь], я должен быть в состоянии сделать то же самое с вызовом где-нибудь, верно?

Некоторые программы действительно предоставляют хуки для сценариев, но если они этого не делают, вам не повезло,Конечно, нет никакой гарантии, что если вы можете сделать что-то через графический интерфейс, , то вы можете запустить то же действие из вызова командной строки.

Теперь тот факт, чтобольшинство браузеров предоставляют какую-то архитектуру плагинов, что значительно повышает вероятность того, что существует такой плагин, который будет прослушивать внешний ввод таким образом, если эта функция отсутствует в базовом продукте.

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

0 голосов
/ 14 февраля 2011

Я думаю, что это возможно, если вы напишите и установите какой-либо аддон браузера, который получит ваш сигнал, и выполните эту работу.Интересный вопрос, я буду отслеживать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...