कमांड लाइन से सक्रिय ब्राउज़र टैब को ताज़ा करें / पुनः लोड करें?


28

मैं एक कस्टम टूलचैन स्थापित करने की कोशिश कर रहा हूं जहां ब्राउज़र (फ़ायरफ़ॉक्स या, अधिमानतः, क्रोम) अक्सर / अक्सर / लगातार / कमांड लाइन से ताज़ा करने के लिए मजबूर किया जाता है।

(HTML / webapp में दृश्य परिवर्तनों को तुरन्त देखने के लिए विचार यह है कि मैं एक समीपवर्ती Emacs फ्रेम में संपादन कर रहा हूं - बिना मैनुअल रीफ्रेश करने के लिए ब्राउज़र को लगातार टैब करने के लिए।)

मैं अब तक जितने पास आया हूं वह दौड़ना है google-chrome FILE_PATH। हालाँकि यह हर बार एक नया टैब खोलता है।

क्या अन्य दृष्टिकोण हैं?


1
मैं ऑटो रीलोड जैसे कुछ से शुरू करने की कोशिश करूंगा ।
5

इसके लिए आह धन्यवाद। मैंने पहले सोचा था कि यह केवल नो-गो है क्योंकि यह केवल मैक है, लेकिन ऐसा लगता है कि github.com/guard/guard-livereload
क्रॉस

फ़ायरफ़ॉक्स स्पष्ट रूप से रिमोट-नियंत्रित हो सकता है, लेकिन मैं इसे काम करने के लिए नहीं प्राप्त कर सका। शायद आपके पास बेहतर भाग्य है।
Amenthes

जवाबों:


13

कुछ के साथ खेलने के लिए

यह xdotool का उपयोग करता है , जो आपको विंडोज़ / डेस्कटॉप कार्यों को स्क्रिप्ट करने देता है। यदि आप एक तर्क के रूप में ब्राउज़र का नाम देते हैं, तो यह वर्तमान पृष्ठ को ढूंढेगा और पुनः लोड करेगा। आप एक डिफ़ॉल्ट ब्राउज़र सेट कर सकते हैं, इसलिए आपको हर बार एक आपूर्ति करने की आवश्यकता नहीं है, और आप बदल सकते हैं कि क्या आप पुनः लोड करने के लिए CTRL-R भेजते हैं, या SHIFT-CTRL-R को कैश के बिना पुनः लोड करने के लिए।

इसे आपके ब्राउज़र पर फ़्लिप करना चाहिए , पेज को फिर से लोड करना चाहिए , फिर जिस भी विंडो से आपने इसे कॉल किया है, उसे वापस फ्लिप करें। मैं इसका उपयोग अक्सर बैकग्राउंड में ब्राउजर लगाकर करता हूं, जिसमें संपादक विंडो के साथ 'ON-TOP' सेट होता है, इसलिए यह हमेशा दिखाई देता है, इस स्क्रिप्ट को हॉट-की या इसे अपने एडिटर से कॉल करें, और जब यह हो जाएगा तो यह आपका फोकस लौटा देगा।

मैं एक विम उपयोगकर्ता हूं, और जब भी किसी दिए गए फ़ाइल को लिखा जाता है, तो मैं इस स्क्रिप्ट को स्वचालित रूप से ट्रिगर करने के लिए एक ऑटोकॉमैंड बना सकता हूं, इसलिए उपयुक्त होने पर ब्राउज़र ताज़ा हो जाएगा, मुझे पता है कि आप भी ऐसा कर सकते हैं।

#!/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 कूल सामान! ध्यान दें कि --nameपैरामीटर विंडो स्ट्रिंग में प्रदर्शित स्ट्रिंग के खिलाफ मेल खाता है इसलिए इसमें हमेशा ब्राउज़र का नाम नहीं हो सकता है जैसा कि इस उदाहरण में है।
रिबास

@rebus --class या --classname के बारे में क्या?
कुंभ राशि

6

@ lornix का जवाब मेरे लिए काफी काम नहीं आया (मुझे यकीन नहीं है कि, संभवतः मेरे विंडो मैनेजर ने xdotool को विंडोज़ स्विच करने की अनुमति नहीं दी है)। मैंने एक संशोधित संस्करण लिखा है जो अधिक मजबूत होना चाहिए, यह:

  1. खिड़कियों के बीच अनावश्यक स्विचिंग नहीं करता है
  2. खुद को दृश्यमान खिड़कियों तक सीमित करता है
  3. सभी दिखाई देने वाली खिड़कियों को ताज़ा करता है

(इसके अलावा यह Ctrl-R के बजाय F5 का उपयोग करता है, लेकिन ऐसा सिर्फ इसलिए है क्योंकि मेरे पास Ctrl-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

मुझे यह जोड़ना चाहिए कि यह क्रोमियम के साथ काम नहीं करता है, और मुझे पूरी तरह से पता नहीं है कि क्यों।
dshepherd

मैं एक अच्छी तरह से लिखा बैश स्क्रिप्ट देखकर प्यार करता हूँ! वैसे, क्रोमियम काम करता है यदि आप कुंजी से पहले विंडोफोकस का उपयोग करते हैं । बेशक, आपको फिर पिछले फोकस को पुनर्स्थापित करना होगा।
hackerb9

6

यदि आप फ़ायरफ़ॉक्स का उपयोग कर रहे हैं, तो ऑटो रीलोड एक एक्सटेंशन है जहां फ़ाइल बदलने पर यह फिर से लोड होता है। आप फ़ाइलों, निर्देशिकाओं या लोकलहोस्ट को जोड़ सकते हैं और रेगेक्स आधारित फ़िल्टर संपादित कर सकते हैं ताकि आप जो चाहें हासिल कर लें। मुझे क्रोम में इसका कोई पूरक पता नहीं है। लिंक: https://addons.mozilla.org/en-US/firefox/addon/auto-reload/


1
कोई और काम नहीं करता, दुख की बात है।
ग्रिंगो सुवे

2

OS X के लिए आप इस एप्सस्क्रिप्ट का उपयोग कर सकते हैं:

activate application "Firefox"
tell application "System Events" to keystroke "r" using command down
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.