8

Используя плагин TabMixPlus для Firefox или Chrome, я могу щелкнуть правой кнопкой мыши страницу и выбрать «перезагрузить каждые ...», и я могу выбрать интервал.

Я предпочел бы не устанавливать плагин, если в этом нет необходимости, и я знаю, что вы можете вводить специальные вещи в адресную строку Chrome.

Это заставляет меня думать, что что-то вроде этого, напечатанное прямо в адресе, могло бы работать:

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

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

Это возможно?

3 ответа3

10

Вы можете сделать это через Chrome Developer Tools, используя комбинацию клавиш ctrl+shift+j. Загрузите нужную страницу, скажем, например: http://www.w3schools.com/jsref/dom_obj_frame.asp, затем нажмите Ctrl + Shift + J, чтобы открыть инструменты разработчика. Щелкните правой кнопкой мыши на теге body и выберите edit, так как 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 секунд, вы можете закрыть инструменты разработчика, если хотите, и она продолжит обновляться, плагин не нужен :)

3

Через 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
)

Это работает, заменяя текущее тело документа на iframe, указывающий на текущее местоположение окна.

Затем выполняется вызов setInterval, который заставляет страницу перезагрузиться по таймеру.

Это хорошо работает в качестве закладки. Дополнительная функция setInterval также может вызываться закладкой: javascript:clearTimer(reloadTimer)

Заметки:

  • Некоторые сайты обнаруживают, что к ним обращаются через iframe, и пытаются заблокировать доступ (например, сайты Stack!)

  • Браузеры удаляют префикс javascript: при вставке в адресную строку его необходимо вводить вручную. Однако javascript: не удаляется, если вводится через закладку.

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 и запустить его на любом сайте, чтобы перезагрузить его. Надеюсь, поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .