English 中文(简体)
向浏览器发送Javascript代码
原标题:Send Javascript code to browser

有没有一种方法可以从shell向在浏览器中运行的开放式web发送javascript命令?

假设我已经用Chrome打开了stackoverflow.com。嗯,我想寄一些类似的东西

alert( hi! );

从外壳中,使用类似于以下内容的内容:

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

我想知道这一点,因为如果我能在Chrome的javascript控制台上写警报(嗨!),我应该也能在某个地方调用,对吧?

我看过node.js,但我认为这是不可能的,如果我错了,请告诉我。

我知道这个问题可能看起来很奇怪,但我很好奇,提前谢谢:)

最佳回答

您可以通过jssh扩展将JavaScript发送到Firefox。

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

这就是Watir测试框架用来自动化Firefox的地方。

我不知道Chrome有什么对等版本。

问题回答

对于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);"

我认为,如果你编写并安装一些浏览器插件,接收你的信号,并完成这项工作,这是可能的。有趣的问题,我会追踪的。

提供这种功能完全取决于浏览器。事实上,问题的形式甚至不特定于浏览器:

我想知道这一点,因为如果我能为[一个程序][提供某种输入],让它[做一些事情],我应该也能在某个地方打电话,对吧?

有些程序确实提供了用于脚本编写的钩子,但如果它们没有,那你就倒霉了。当然不能保证如果您可以通过GUI执行某些操作,可以通过命令行调用触发相同的操作。

现在,大多数浏览器都提供了某种插件架构,这使得如果基本产品中缺少此功能,那么这样一个插件更有可能以这种方式监听外部输入。

然而,这仍然会非常具体地针对您想要控制的浏览器的特定型号甚至版本——因此,如果这是您想要发布到野外的东西,您需要非常具体地满足您的要求。

您可以通过地址栏向浏览器发送任意代码!例如,在自动热键样式中

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 ;

希望它能起作用。





相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签