Вот как я это решил:
Открытые браузеры:
- Google Chrome
- Firefox
- VirtualBox с Win XP работает:
В коде моего сайта есть статический заголовок, так что я могу ссылаться на каждое окно браузера через егоназвание.Например, заголовок «Это мой заголовок для всех страниц» приводит к появлению в окне 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
Сценарий для меня работает следующим образом:
- Сохраняет текущее окно
- Если Chrome открыт, поместите его в фокус и смоделируйте Ctrl-r для перезагрузки
- ... сделать то же самое для firefox ...
- Если виртуальная машина открыта, поместите ее в фокус, чтобы позволить Win XP перехватывать события клавиатуры и имитировать Ctrl-r, затем Alt-Tab для переключенияв другую версию IE (поскольку оба IE работают в одной и той же виртуальной машине через Utilu IE Collection) и последний Ctrl-r, чтобы обновить и эту версию
Вы должны иметь xdotool (sudo apt-getустановить xdotool).Снятие комментария со 2-й по последнюю строку гарантирует, что последнее открытое окно вернется вверх после того, как все обновления будут выполнены.
Другое решение, о котором я могу подумать, - это вызов AJAX, который проверяетпосмотрите, была ли переменная сеанса с именем do_refresh установлена каждую секунду, и если это так, обновите браузер и затем напишите скрипт, который добавляет «| do_refresh» в конец всех файлов сеанса php, когда вы хотите перезагрузить, но это не делает »t поднять браузер на передний план (это то, что я хотел, потому что у меня есть 4 монитора, поэтому у меня есть код на первом, Chrome на втором, то есть 8 и 9 на третьем и Firefox на четвертом, и чтобы все они появлялись, когда явнести изменения в мой код действительно приятно, но если вы работаете с 1 или 2 мониторами, вы, возможно, не захотите, чтобы окна фокусировались).(примечание: 4 монитора не достаточно: X Если вы собираетесь получить много мониторов, получите 6.)
Фу, это был довольно пост.Просто хотел получить эту информацию о stackoverflow, чтобы каждый мог насладиться экстазом одновременной перезагрузки.