【问题标题】:Firefox refresh current tab from command-lineFirefox 从命令行刷新当前选项卡
【发布时间】:2011-04-04 22:38:38
【问题描述】:

我想从命令行触发 Firefox 上的标签刷新。我正在开发一个网络应用程序,并且在应用程序编译后刷新。我从 IDE 中的命令触发编译。它不是固定的 url,也不能从 IDE 中打开的文件中导出。因此,活动选项卡中当前打开的 url。

问题是,我在一个不支持 Xinerama 的双头框中,这意味着我不能 alt+tab 到 Firefox,而是必须将鼠标移动到另一个屏幕,单击 Firefox,然后按 Ctrl+ R。这不可能。

我尝试了一些小书签的东西,比如 DISPLAY=':0.1' firefox -remote 'openurl(javascript:alert(1);)' ,但 FF 不会运行它。

有什么想法吗?

【问题讨论】:

  • 也许您可以通过自定义命令行处理程序扩展来实现。
  • 已经有这样的事情了吗?还是我必须做一个?

标签: firefox shell automation


【解决方案1】:

您可以使用 xdotool 进行自动化。在 Ubuntu 上安装

sudo aptitude install xdotool

然后您可以搜索窗口并发送键或鼠标事件,请参阅man xdotool 以获取完整文档。我在开发过程中在 Ubuntu 16.04 LTS 上使用以下脚本:

WID=`xdotool search --name "Mozilla Firefox" | head -1`
xdotool windowactivate $WID
xdotool key F5

注意:在旧版本中,例如Ubuntu 14.04 的标志是 --title 而不是 --name

另请参阅xdotool project site

【讨论】:

  • +1 verified.
  • 有效,但切换到 Firefox 窗口会产生不好的副作用
  • 当使用--title 我得到:This flag is deprecated. Assuming you mean --name (the window name).
  • @ŁukaszGruner 看到我的回答自动切换回上一个窗口。
【解决方案2】:

这是@geekQ 脚本的更新版本,它将焦点返回到以前的程序(但是,Firefox 窗口仍将被拉到顶部)。

#!/bin/bash

CURRENT_WID=$(xdotool getwindowfocus)

WID=$(xdotool search --name "Mozilla Firefox")
xdotool windowactivate $WID
xdotool key F5

xdotool windowactivate $CURRENT_WID

【讨论】:

  • 对于最初的问题,只要$CURRENT_WID 保持焦点,Firefox 是否被拉到顶部并不重要。非常好,谢谢!
  • 太棒了,很高兴这个小脚本对你也有帮助!
【解决方案3】:

对于 OS X,您可以使用以下几行 applescript 来完成:

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down

【讨论】:

    【解决方案4】:

    IOPUS 有一个名为 IMACROS 的漂亮工具。 您可以为浏览器编写宏,然后从脚本中调用宏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多