ใช้ JavaScript และ Greasemonkey เพื่อโหลดแท็บเดียวใน Firefox?


8

ฉันยังใหม่กับ Greasemonkey และ javascript แต่พบสคริปต์ด้านล่างเพื่อโหลดหน้าเว็บใหม่ทุก 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ไม่มีอยู่จริง?
Laoujin

ขออภัย - นั่นเป็นเพียงการพิมพ์ผิด
Neil Spencer

คำตอบ:


8

รหัสนั้นมีบล็อกเมตาดาต้าที่เสียหายช่องว่างสำคัญสำหรับบล็อกนั้นและช่องว่างเพิ่มเติมที่จุดเริ่มต้นของบรรทัดสามารถแยกออกได้ทำให้สคริปต์เริ่มทำงานสำหรับทุกหน้า (พฤติกรรมเริ่มต้น)

อัปเดต: ลักษณะที่ปรากฏของบล็อกที่เสียหายอาจเป็นข้อบกพร่องในการแสดงที่นี่ที่ SuperUser จะตรวจสอบในไม่ช้า
Updatier:บล็อกที่เสียหายนั้นเป็นจริงรหัสของ OP ถูกเยื้องโดยการผสมผสานของแท็บและช่องว่างซึ่งหลอกตัวแก้ไขโพสต์ดิบของ SU แต่ไม่ใช่การแสดงขั้นสุดท้าย

นอกจากนี้@includeคำสั่งยังระบุหน้าเว็บที่ไม่มีอยู่ด้วย เมื่อเทียบกับww. www.บรรทัดนั้นควรเป็น:

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

หรืออาจจะเป็น:

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

หากคุณต้องการมากกว่าเพียงแค่หน้าแรกที่ได้รับผลกระทบ

รวบรวมทั้งหมดเข้าด้วยกันและใช้setTimeoutในวิธีที่แนะนำ (หลีกเลี่ยงการใช้ "auto 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
ยอดเยี่ยม - ขอบคุณมากสำหรับสิ่งนี้ ตอนนี้สคริปต์นั้นทำงานบนหน้าเว็บที่ฉันต้องการมากกว่าทุกหน้า
Neil Spencer

2

ผมไม่แน่ใจว่าวิธีการที่จะทำเช่นนี้ใน Javascript แต่ Firefox มี addon ที่เรียกว่าReloadEvery ติดตั้งรีสตาร์ท FF แล้วคลิกขวาบนหน้าและเลือก ReloadEvery และเวลา


1
ใช่ - แต่ทุกครั้งที่ฉันเปิด Firefox และไปที่เว็บไซต์ฉันต้องเปิดใช้งาน ReloadEvery สิ่งที่ฉันต้องการคือการโหลดจะเปิดใช้งานโดยอัตโนมัติเพียงไปที่หน้า จาวาสคริปต์ด้านบนทำเช่นนี้ แต่จะโหลดแท็บอื่นทั้งหมดที่เปิดอยู่
Neil Spencer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.