簡體   English   中英

將Javascript代碼發送到瀏覽器

[英]Send Javascript code to browser

有沒有辦法將javascript命令發送到從shell運行的開放式網站?

假設我使用Chrome打開stackoverflow.com。 好吧,我想寄一些類似的東西

alert('hi!');

從shell開始,類似於以下內容:

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

我想知道這個,因為如果我可以在Chrome的javascript控制台上寫警報('hi!'),我應該能夠在某個地方打電話,對吧?

我見過node.js,但我認為不可能,請告訴我,如果我錯了。

我知道這個問題看起來很奇怪,但我很好奇,謝謝你提前:)

對於IE似乎你可以使用舊的VBScript: http//www.autohotkey.com/forum/topic7642.html

現在用IE8為我工作很好。 :)

編輯:打開這個非常問題並提醒JS值將此代碼作為.vbs文件並運行它:

Dim oIE

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

oIE.Navigate "http://stackoverflow.com/questions/4992552/send-javascript-code-to-browser/4992812"

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

oIE.Navigate "javascript:alert(fkey);"

您可以通過地址欄向瀏覽器發送任意代碼! 例如,在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';

希望它有效。

我認為,如果您編寫並安裝一些可以接收信號的瀏覽器插件,並且可以完成工作,這是可能的。 有趣的問題,不好跟蹤它。

完全取決於瀏覽器提供這種功能。 事實上,您的問題形式甚至不是特定於瀏覽器:

我想知道這一點,因為如果我能[為某個程序提供某種輸入]使它[做某事],我應該可以在某個地方做同樣的呼叫,對吧?

有些程序確實為腳本提供了鈎子,但如果它們沒有,那你就不走運了。 當然是有沒有保證, 如果你能夠通過圖形用戶界面做一些事情, 然后就可以從命令行調用同樣的動作。

現在大多數瀏覽器提供某種插件架構的事實使得更有可能存在以這種方式監聽外部輸入的插件,如果基本產品中缺少此功能的話。

但是,對於特定型號甚至是您想要控制的瀏覽器版本,這仍然是非常具體的 - 所以如果您希望將其發布到野外,那么您需要非常具體地滿足您的要求。

您可以通過jssh擴展將JavaScript發送到Firefox。

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

這就是Watir測試框架用於自動化Firefox的內容。

我不知道Chrome的等價物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM