Aktif tarayıcı sekmesini komut satırından yenile / yeniden yükle?


28

Tarayıcının (Firefox veya tercihen Chrome'un) sık sık / sık sık / sürekli olarak komut satırından yenilemek zorunda kaldığı özel bir araç zinciri kurmaya çalışıyorum.

(Buradaki fikir, html / webapp'taki görsel değişiklikleri anında görmek için bitişik bir Emacs karesinde düzenlemekteyim - tarayıcıyı el ile yenilemek için sürekli sekmeye gerek kalmadan.)

Şimdiye kadar geldiğim en yakın şey kaçmak google-chrome FILE_PATH. Ancak bu her zaman yeni bir sekme açar.

Başka yaklaşımlar var mı?


1
Otomatik Yeniden Yükleme gibi bir şeyden başlamayı denerdim .
Manatwork

Ah bunun için teşekkür ederim. Bunun sadece Mac olduğundan beri işe yaramaz
thomanil

Firefox görünüşte uzaktan kontrol edilebilir , ancak çalışmasını sağlayamadım. Belki daha iyi şansın vardır.
amenthes

Yanıtlar:


13

Oynamak için bir şey

Windows / masaüstü eylemleri komut dosyası sağlayan xdotool kullanır . Tarayıcının adını bir argüman olarak verirseniz, geçerli sayfayı bulur ve yeniden yükler. Varsayılan bir tarayıcı ayarlayabilirsiniz, böylece her seferinde bir tane tedarik etmeniz gerekmez ve yeniden yüklemek için bir CTRL-R veya önbelleğe alınmadan yeniden yüklemek için SHIFT-CTRL-R göndermek isteyip istemediğinizi değiştirebilirsiniz.

Bu olmalıdır , tarayıcınıza çevirmek sayfayı yenileyin ve sonra ne olursa olsun pencereye çevirme geri bu aradı. Tarayıcıyı arka plana koyarak, editör penceresi 'ON-TOP' olarak ayarlanmış olarak sık sık kullanırım, bu yüzden her zaman görünür, bu betiği kısayol tuşu veya editörünüzden çağırırsınız ve işiniz bittiğinde odağınızı döndürür.

Ben bir vim kullanıcısıyım ve belirli bir dosya yazıldığı zaman bu betiği otomatik olarak tetiklemek için bir otomatik komut yapıyordum, bu yüzden tarayıcı uygun olduğunda yenilenir, aynısını yapabileceğinizi biliyorum.

#!/bin/bash
#
# L Nix <lornix@lornix.com>
# reload browser window
#
# whether to use SHIFT+CTRL+R to force reload without cache
RELOAD_KEYS="CTRL+R"
#RELOAD_KEYS="SHIFT+CTRL+R"
#
# set to whatever's given as argument
BROWSER=$1
#
# if was empty, default set to name of browser, firefox/chrome/opera/etc..
if [ -z "${BROWSER}" ]; then
    BROWSER=firefox
fi
#
# get which window is active right now
MYWINDOW=$(xdotool getactivewindow)
#
# bring up the browser
xdotool search --name ${BROWSER} windowactivate --sync
# send the page-reload keys (C-R) or (S-C-R)
xdotool search --name ${BROWSER} key --clearmodifiers ${RELOAD_KEYS}
#
# sometimes the focus doesn't work, so follow up with activate
xdotool windowfocus --sync ${MYWINDOW}
xdotool windowactivate --sync ${MYWINDOW}
#

+1 Harika şeyler! Not --nameher zaman bu burada örnekte olduğu gibi tarayıcının adını içermiyor olabilir bu yüzden pencere başlık çubuğunda görüntülenen dize karşı parametre eşleşmeleri.
rebus

@rebus --class veya --classname'den ne haber?
Kova Gücü

6

@ lornix'in yanıtı benim için pek işe yaramadı (neden olduğundan emin değilim, muhtemelen pencere yöneticim xdotool'un pencereleri değiştirmesine izin vermiyor). Daha sağlam olması gereken değiştirilmiş bir versiyonunu yazdım:

  1. Gereksiz pencereler arasında geçiş yapmaz
  2. Kendini görünür pencerelerle sınırlandırır
  3. Tüm görünür pencereleri yeniler

(Ayrıca Ctrl-R yerine F5 kullanır, ancak bunun nedeni Ctrl-R'nin başka bir şeye bağlı olmasıdır.)

#!/bin/bash

set -o errexit
set -o nounset

keystroke="CTRL+F5"

# set to whatever's given as argument, defaults to firefox
BROWSER="${1:-firefox}"

# find all visible browser windows
browser_windows="$(xdotool search --sync --all --onlyvisible --name ${BROWSER})"

# Send keystroke
for bw in $browser_windows; do
    xdotool key --window "$bw" "$keystroke"
done

Bunun kromla çalışma gibi görünmediğini eklemeliyim ve nedenini kesinlikle bilmiyorum.
dshepherd,

İyi yazılmış bir bash betiği görmeyi seviyorum! Bu arada, tuşa basmadan önce pencereyi kullanırsanız, krom çalışır . Tabii ki, önceki odağı geri yüklemek zorundasın.
hackerb9


2

OS X için bu küçük parçayı kullanabilirsiniz:

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.