Автоматично перезавантажувати сторінку в Chrome без плагіна


12

Використовуючи плагін TabMixPlus для Firefox або Chrome, я можу клацнути правою кнопкою миші сторінку та вибрати "Перезавантажити кожен ...", і я міг вибрати інтервал.

Я вважаю за краще не встановлювати плагін, якщо мені справді не доведеться, і я знаю, що ви можете вводити спеціальні речі в адресний рядок Chrome.

Це змушує мене думати, що щось подібне, набране прямо в адресу, може спрацювати:

javascript:setInterval(window.location.reload(), 2000); //2 secs`

Я ще не впорався з цим, але все ще не хочу виключати це як можливість.

Чи можливо це?


Чому ви проти плагіна? Якщо ви переживаєте, просто напишіть власний плагін, який робить саме те, що ви хочете.
Рамхаунд

Я не проти плагінів, вибачте, якщо він читає так. Я просто хотів би дізнатися трохи більше про можливості адресного рядка Chrome :)
jon

Чому ви не намагалися ввести це в адресний рядок?
Тобі Аллен

Я маю, бачтеi haven't managed it yet
Джон

Проблема полягає в тому, що щойно ви телефонуєте location.reload()та перезавантажуєте сторінку, що стосується Chrome, то це, як правило, завантаження нової сторінки, а контекст - це все нове (те, що ви ввели раніше, втрачається). Тож вам потрібно якось зберігати свій код, і сторінка повинна бути однаковою, тому рішення відповіді iframe.
ShreevatsaR

Відповіді:


13

Через 6 років у мене є рішення для цього!

Відповідь натхненна іншими відповідями тут.

Відповідь Едуба для мене не працювала, він перезавантажував сторінку знову і знову, і не спостерігав setIntervalпараметр тривалості. Я не розумію, чому відповідь Едуба працює не так, як очікувалося.

Це працює для мене в Chrome 67:

javascript:document.getElementsByTagName("body")[0].innerHTML = "<iframe id=\"testFrame\" src=\""+window.location.toString()+"\" style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\"><\/iframe>";reloadTimer = setInterval(function(){ document.getElementById("testFrame").src=document.getElementById("testFrame").src },10000)

Відформатована версія:

document.getElementsByTagName("body")[0].innerHTML = 
"<iframe id=\"testFrame\" 
        src=\"" + window.location.toString() + "\" 
      style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\">
<\/iframe>";
reloadTimer = setInterval(
    function(){ 
        document.getElementById("testFrame").src=document.getElementById("testFrame").src
    },
    10000
)

Це працює, замінивши поточне тіло документа на рамку, що вказує на поточне місце вікна.

Потім виконується дзвінок на setInterval, що робить перезавантаження сторінки за таймером.

Це добре працює як закладка. Додаткова функція setInterval може бути викликана також закладкою:javascript:clearTimer(reloadTimer)

Примітки:

  • Деякі сайти виявляють доступ до них за допомогою iframe та намагаються заборонити доступ (наприклад, стек сайтів!)

  • Веб-переглядачі знімають префікс javascript:під час вставки в адресний рядок, щоб його вводили вручну. Однак javascript:не знімається, якщо вводиться через закладку.


11

Ви можете зробити це через Інструменти для розробників Chrome, використовуючи комбінацію клавіш ctrl+shift+j. Завантажте потрібну сторінку, скажімо, наприклад: http://www.w3schools.com/jsref/dom_obj_frame.asp, потім натисніть, ctrl+shift+jщоб відкрити інструменти для розробників. Клацніть правою кнопкою миші на тезі тіла та виберіть редагування, оскільки html замінить внутрішній вміст (залишивши тег та теги закритими недоторканими) наступним:

<iframe id="testFrame" src="http://www.w3schools.com/jsref/dom_obj_frame.asp" style="position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;" onload="setInterval(document.getElementById('testFrame').contentWindow.location.reload(), 10000);"></iframe>

щоб припинити редагування як HTML, ви можете натиснути escабо натиснути один із тегів поза тим, який ви редагуєте. Сторінка повинна починати повторне завантаження кожні 10 секунд, ви можете закрити інструменти для розробників, якщо хочете, і вона продовжить оновлюватися, плагін не потрібен :)


Спасибі Джастін, це працює, тому я підтримав позицію, але це не відповідь, яку я так шукав, залишаю питання відкритим з надією :) Також F12 не?
Джон

3

Отримавши рішення від Джастіна Бусера ще на крок, я приведу до:

document.getElementsByTagName("body")[0].innerHTML = "<iframe id=\"testFrame\" src=\""+window.location.toString()+"\" style=\"position: absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%;\" onload=\"setInterval(document.getElementById(\'testFrame\').contentWindow.location.reload(), 10000);\"><\/iframe>"

Ідея вбудувати сайт у iframe, щоб мати можливість його перезавантажити, чудово працює (я здогадуюсь). Я просто написав якийсь код, щоб отримати елемент body та замінити innerhtml на Iframe на поточний URL.

Таким чином можна встановити закладку деякого коду JavaScript і запустити його на будь-який сайт, щоб перезавантажити його. Сподіваюся, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.