फ़ायरफ़ॉक्स में केवल एक टैब को पुनः लोड करने के लिए जावास्क्रिप्ट और Greasemonkey का उपयोग करना?


8

मैं Greasemonkey और जावास्क्रिप्ट के लिए नया हूँ लेकिन हर 5 मिनट में एक पृष्ठ को पुनः लोड करने के लिए नीचे स्क्रिप्ट मिली है।

// ==UserScript==
// @name        Auto Reload Protopage
// @namespace   http://blog.monstuff.com/archives/cat_greasemonkey.html
// @description Reload pages every 5 minutes
// @include     http://ww.bbc.co.uk
    // @grant               none
// ==/UserScript==

// based on code by Julien Couvreur
// and included here with his gracious permission

var numMinutes = 5;
window.setTimeout("document.location.reload();", numMinutes*60*1000);

यह काम करता है लेकिन यह हर 5 मिनट में सभी खुले टैब को फिर से लोड करता है न कि @include स्टेटमेंट में निर्दिष्ट एक।

ऐसा करने का कोई रास्ता नहीं है?


http://ww.bbc.co.uk मौजूद नहीं है?
लुआजीन

क्षमा करें - यह सिर्फ एक टाइपो था
नील स्पेंसर

जवाबों:


8

उस कोड में एक भ्रष्ट मेटाडेटा ब्लॉक है , उस ब्लॉक के लिए रिक्त स्थान महत्वपूर्ण हैं, और एक पंक्ति की शुरुआत में अतिरिक्त स्थान इसे तोड़ सकते हैं - जिससे सभी पृष्ठों (डिफ़ॉल्ट व्यवहार) के लिए स्क्रिप्ट आग हो सकती है।

अद्यतन: एक भ्रष्ट ब्लॉक की उपस्थिति सुपरयूज़र में यहां केवल एक प्रदर्शन बग हो सकती है। थोड़ी जांच करेंगे।
अद्यतनकर्ता: भ्रष्ट ब्लॉक वास्तविक है, ओपी का कोड टैब और रिक्त स्थान के मिश्रण से प्रेरित है , जिसने एसयू के कच्चे-पोस्ट संपादक को बेवकूफ बनाया, लेकिन अंतिम प्रदर्शन नहीं।

इसके अलावा, @includeनिर्देश एक वेबपेज को निर्दिष्ट कर रहा है जो मौजूद नहीं है। ww., बनाम www.। वह रेखा होनी चाहिए:

// @include     http://www.bbc.co.uk/

या संभवतः:

// @include     http://www.bbc.co.uk/*

यदि आप केवल मुख पृष्ठ से अधिक चाहते हैं तो प्रभावी होगा।

सभी को एक साथ रखना और setTimeoutअनुशंसित तरीके से उपयोग करना ("ऑटो eval ()" के उपयोग से बचें):

// ==UserScript==
// @name        Auto Reload Protopage
// @namespace   http://blog.monstuff.com/archives/cat_greasemonkey.html
// @description Reload pages every 5 minutes
// @include     http://www.bbc.co.uk/
// @grant       none
// ==/UserScript==

// based on code by Julien Couvreur
// and included here with his gracious permission

var numMinutes = 5;
setTimeout (location.reload, numMinutes*60*1000);

1
शानदार - इसके लिए बहुत धन्यवाद। स्क्रिप्ट अब वास्तव में केवल उस पृष्ठ पर काम कर रही है जिसे मैं सभी पृष्ठों के बजाय चाहता हूं।
नील स्पेंसर

2

मुझे यकीन नहीं है कि जावास्क्रिप्ट में यह कैसे किया जा सकता है, लेकिन फ़ायरफ़ॉक्स में एक ऐडऑन है जिसे ReloadEvery कहा जाता है । इसे स्थापित करें, एफएफ को पुनरारंभ करें और फिर पृष्ठ पर राइट क्लिक करें और पुनः लोड करें और एक समय चुनें।


1
हां - लेकिन फिर हर बार जब मैं फ़ायरफ़ॉक्स खोलता हूं और वेबसाइट पर जाता हूं तो मुझे ReloadEvery को सक्रिय करना होगा। जो मैं चाहूंगा, वह केवल पृष्ठ पर जाकर पुनः लोड होने के लिए है। ऊपर दी गई जावास्क्रिप्ट ऐसा करती है लेकिन खुले हुए अन्य सभी टैब को भी पुनः लोड करती है।
नील स्पेंसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.