我在 kiosk 模式下使用 chromium 或 firefox Web 浏览器从启动时登录网站,并且我想使用 javascript 发送命令以自动登录网站。我知道如何编写 javascript,但我不知道如何将 javascript 从终端 bash 文件“通过管道”传输到 Web 浏览器中。另外,我在 Linux 上工作。
答案1
在 OS X 中,您可以使用 AppleScript 在 Chrome 中运行 JavaScript:
xj(){ osascript -e'on run{a}' -e'tell app"google chrome"to tell active tab of window 1 to execute javascript a' -eend "$1"; }
Firefox 不支持 AppleScript。
答案2
我不确定 Firefox 是否能够做你想做的事,尽管有很多命令行选项用于从脚本启动 Firefox。
Chrome 有更多选择也许能够从本地源执行 javascript,但我对此表示怀疑。
如果您能以某种方式通过开发人员控制台传递 javascript,那么您肯定可以在 Web 浏览器会话中执行任意代码(即自动登录或其他)。
黑客攻击
由于您绝对可以从脚本中为两种浏览器指定起始 url,因此也许以下内容可以工作1:
编写一个脚本,自动导航到您要登录的网页并完成登录过程(即
POST
登录表单,等等)。将此文件保存到磁盘并确保用户可以读取它。
启动 Firefox 并将其指向此文件:
./firefox -url "file:///home/thisUser/desktop/foo.html"
我不确定 url 方案file:///
是否适用于所有情况,但我确实在 OSX 上测试了它。
这应该加载文件并尝试呈现内容。这file:///
只是一种不必在本地主机上运行 Web 服务器的方法,但这也可以工作。
您可能会遇到 XSS 问题或其他远程登录障碍,因此您可能必须恢复到服务器端脚本并将浏览器指向localhost
Web 服务器。
祝你好运!
1我还没有完全测试过,只是抛出一个想法。