如何在linux上一次性重新加载我的所有浏览器?

时间:2010-11-09 22:02:19

标签: internet-explorer firefox browser reload

我是一名网页设计师,当然我必须使用每一个主要的浏览器(没有IE 6,因为它是如此痛苦的屁股,我需要 png透明度,没有任何变通方法)。我一直在寻找一种方法来运行和重新加载Firefox,一个Webkit浏览器(Chrome)和IE 7&一下子就是8。

(我已经得到了我的需求的答案,我将在下面发布以供其他人参考,但我确信有更好的方法可以做到。)

2 个答案:

答案 0 :(得分:5)

这就是我解决它的方法:

浏览器打开:

  • Google Chrome
  • 火狐
  • VirtualBox w / Win XP运行:
    • IE 7
    • IE 8

在我的网站代码中,我有一个静态标题,以便我可以通过其名称引用每个浏览器窗口。例如,“这是我所有页面的标题”的标题导致firefox窗口名称为“这是我的所有页面的标题 - Mozilla Firefox”。

在compiz下我设置了一个键盘快捷键(Ctrl + j,因为它很容易到达),它在/ home / username / bin中运行了一个名为refresh_all的脚本(别忘了制作这个可执行文件)。

这是refresh_all

的内容
#!/bin/bash

currentwindow=`xdotool getwindowfocus`

id=`xdotool search --title '[Site Title] - Google Chrome'`
xdotool windowmap $id
if [ $? = 0 ]
then
    xdotool windowactivate $id
    xdotool key 'ctrl+r' $id
fi

id=`xdotool search --title '[Site Title] - Moz'`
xdotool windowmap $id
if [ $? = 0 ]
then
    xdotool windowactivate $id
    xdotool key 'ctrl+r' $id
fi

id=`xdotool search --title '[Name of Virtual Machine]'`
xdotool windowmap $id
if [ $? = 0 ]
then
    xdotool windowactivate $id
    xdotool key 'ctrl+r' $id
    xdotool key 'alt+Tab' $id
    xdotool key 'ctrl+r' $id
fi

#xdotool windowmap $currentwindow
xdotool windowactivate $currentwindow

脚本对我来说就像这样:

  1. 保存当前窗口
  2. 如果Chrome已打开,请将其置于焦点并模拟Ctrl-r以重新加载
  3. ...为firefox做同样的事情......
  4. 如果VM处于打开状态,请将其置于焦点以允许Win XP捕获键盘事件并模拟Ctrl-r,然后使用Alt-Tab切换到另一个IE版本(因为两个IE都在同一个VM中运行Utilu IE Collection)和最后一个Ctrl-r来刷新那个
  5. 你必须拥有xdotool(sudo apt-get install xdotool)。 取消注释第2行到最后一行将确保在完成所有刷新后,您打开的最后一个窗口将重新打开。

    我能想到的另一个解决方案是进行一次AJAX调用,检查是否每秒都设置一个名为do_refresh的会话变量,如果已经设置,则刷新浏览器,然后编写一个附加'| do_refresh'的脚本当你想要重新加载时,所有php会话文件的结束,但这并没有将浏览器提升到前台(这是我想要的,因为我有4个显示器,所以第一个有代码,第二个是chrome,即8第三个是&9;第四个是firefox,当我对我的代码进行更改时它们全部出现非常好,但是如果你使用1或2个显示器运行,你可能实际上并不希望窗口进入焦点)。 (旁注:4个显示器甚至不够:X如果要获得大量显示器,请获得6个。)

    Phew,这是相当的帖子。只是想在stackoverflow上获取这些信息,这样每个人都可以享受同时重装狂喜。

答案 1 :(得分:0)

我不认为您可以在外部“指示”浏览器刷新某个标签(或者至少支持每个浏览器非常复杂)。您可以做的是,每隔X秒使页面自动刷新一次,这样您就可以始终显示最新版本。要么像:

<script>
  setTimeout('window.location.reload(true);', XXXXX);
</script>

(其中XXXXX为毫秒)或

<meta http-equiv="refresh" content="Y" />

(其中Y是秒)。