플러그인없이 Chrome에서 페이지를 자동으로 다시로드


12

Firefox 또는 Chrome 용 TabMixPlus 플러그인을 사용하여 페이지를 마우스 오른쪽 버튼으로 클릭하고 "모두 다시로드 ..."를 선택하면 간격을 선택할 수 있습니다.

꼭 필요한 경우가 아니라면 플러그인을 설치하지 않는 것이 좋습니다 . Chrome의 주소 표시 줄에 특별한 것을 입력 할 수 있다는 것을 알고 있습니다 .

이것은 주소에 직접 입력 한 것과 같은 것이 효과가 있다고 생각합니다.

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

아직 관리하지 않았지만 여전히 가능성으로 배제하고 싶지 않습니다.

이것이 가능한가?


플러그인에 반대하는 이유는 무엇입니까? 걱정되는 경우 원하는 것을 정확하게하는 자체 플러그인을 작성하십시오.
Ramhound

나는 플러그인에 반대하지 않는다. Chrome의 주소 표시 줄 기능에 대해 조금 더 배우고 싶습니다. :)
jon

검색 주소창에 입력하지 않으셨습니까?
Toby Allen

havei haven't managed it yet
jon

문제는 일단 전화를 걸고 location.reload()페이지가 다시로드되면 Chrome에 관한 한 기본적으로 새 페이지를로드하는 것과 같으며 컨텍스트가 모두 새로운 것입니다 (이전에 입력 한 내용이 손실 됨). 따라서 코드를 어떻게 든 유지하고 페이지가 동일해야하므로 iframe 솔루션이 해결책입니다.
ShreevatsaR

답변:


13

6 년 후 나는 이것에 대한 해결책을 가지고 있습니다!

이 답변은 다른 답변에서 영감을 얻었습니다.

Edub의 답변이 효과가 없었으며 페이지를 계속 다시로드했으며 setInterval의 지속 시간 매개 변수를 관찰하지 못했습니다 . Edub의 답변이 예상대로 작동하지 않는 이유를 이해하지 못합니다.

이것은 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을 통해 액세스하는 것을 감지하고 액세스를 방지하려고합니다 (예 : 스택 사이트)

  • 브라우저 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 초마다 다시로드되기 시작합니다. 원하는 경우 개발자 도구를 닫을 수 있으며 플러그인이 필요없이 계속 새로 고침됩니다. :)


고마워 Justin, 이것은 내가 upvoted했습니다, 그러나 그것은 내가 찾던 대답이 아니므로 희망에 질문을 열어 둡니다 :) 또한, F12 비?
jon

3

Justin Buser의 솔루션을 한 단계 더 발전 시키면 다음과 같은 결과를 얻었습니다.

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 elment를 얻고 innerhtml을 현재 URL의 Iframe으로 바꾸는 코드를 작성했습니다.

이런 식으로 일부 JavaScript 코드를 책갈피에 추가하고 어느 사이트에서나 다시로드 할 수 있습니다. 도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.