2013-05-15 1 views
1

반복 작업을하고 있고 마지막 반복 코드에서 코드를 다시로드 할 코드를 넣습니다.크롬 콘솔에 다시로드 한 후에 자바 스크립트 반복을 유지하십시오.

다시로드 한 후 JavaScript 반복을 실행하고 상태를 계속 유지하려면 어떻게해야합니까?

는 예컨대

for(i=0;i<5;i++) { 
    document.reload(); 
} 

코드보다 실행 한 후, 코드를 중지하고 콘솔이 다시로드.

위의 코드는 작동하지 않을 수 있지만 내가하려는 일에 대해 설명하고 싶습니다.

+0

페이지가 다시로드되면 모든 JavaScript가 다시로드됩니다. 모든 변수가 삭제된다는 의미입니다. 상태를 쿠키 (또는 LocalStorage)에 저장할 수 있습니다. –

+0

@karthikr 몇 가지 옵션이 있으므로 매우 제한적이 아님 – Ian

+0

@Ian 및 옵션은 무엇입니까? – karthikr

답변

2

재설정하지 않은 상태로 상태를 저장해야합니다. localStorage은 이상적인 솔루션입니다.

var i = parseInt(localStorage['i'])||0; 
localStorage['i'] = i+1; 
// do some stuff 
// and reload if you want 
+0

'sessionStorage'는 각 탭/윈도우로 제한되어 있기 때문에 사용하는 것이 더 좋을지 모르지만,이 페이지가 동일한 브라우저에서 여러 번 열리므로 충돌하지 않습니다. – Ian

+0

고맙습니다. 변수의 값을 유지하지만 자바 스크립트가 중지되지 않았습니까? 콘솔을 계속 수동으로 계속해야합니까? – batik

+0

예, 스크립트가 중지되었으므로 for 루프를 사용할 수 없습니다. 나는 당신이 "수동으로 콘솔을 계속하라"는 뜻을 잘 모르겠습니다. –

0

TamperMonkey를 사용하여이 작업을 수행 할 수 있습니다. TamperMonkey 스크립트는 페이지를 다시로드 할 때도 재설정됩니다. 그러나 데이터를 저장할 수 있고 페이지가로드 될 때마다 실행되므로 페이지 재로드에서 지속되는 동작을 구현할 수 있습니다. 이 스크립트가 실행되는 다음 번에 사용할 수 있도록 일부 Tampermonkey 데이터 저장소에

// ==UserScript== 
// @name   HttpBin reload 
// @namespace http://tampermonkey.net/ 
// @version  0.1 
// @description Reload something a couple of times 
// @author  Sjoerd 
// @match  https://httpbin.org/get 
// @grant  GM_setValue 
// @grant  GM_getValue 
// ==/UserScript== 

(function() { 
    'use strict'; 

    var i = GM_getValue('counter', 0); 
    GM_setValue('counter', i + 1); 

    if (i < 5) { 
     location.reload(); 
    } 
})(); 

GM_getValueGM_setValue 기능 데이터를 저장 예를 들면 다음과 같습니다. 이러한 기능을 사용하려면 @grant 헤더를 사용해야합니다.

카운터의 값을 얻고 1 씩 증가시킵니다. 그런 다음 카운터가 5보다 작 으면 페이지를 다시로드합니다. 이렇게하면 예제와 마찬가지로 페이지가 다섯 번 리로드됩니다.

한 번 실행하면 Tampermonkey 데이터 저장소의 counter 값이 6으로 설정되고 스크립트가 더 이상 다시로드되지 않습니다. 페이지를 다시 다섯 번 새로 고치려면 카운터를 재설정하기 위해 무언가를 프로그래밍해야합니다.

관련 문제