繁体   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