2012-09-12 7 views
1

unicreatures.com에 다른 내용을 기록하는 Greasemonkey 스크립트가 있습니다.if 문에 혼란스러운 오류가 발생했습니다.

내가 셀 수있는 일 중 하나는 페이지의 일부 링크에 대한 클릭이지만 모든 링크에 대한 클릭이 아닙니다. 이러한 계산해서는 안 http://unicreatures.com/explore.php?area=sea&id=89&key=bf12 이 필요 계산

http://unicreatures.com/explore.php?area=sea&gather=5&enc=394844&r=

누군가가 나에게 내가 원하는 것을했던 정규 표현식을 알아낼 도움이,하지만 난 그것으로 각기 다른 조사 위치 (area=**)를 코딩했다 그래서 나는 그것이 작동하지 않을 것이라고 결정했다.

var links = document.getElementsByTagName('a'); 

for (var i = 0; i < links.length; i++) { 
var link = links[i]; 
if (/area=sea(?!\&gather)/.test(link.href)) { 
    link.addEventListener('click', function() { 
localStorage.steps=Number(localStorage.steps)+1 
     // alert(localStorage.steps + ' in Sargasso'); 
    }, true); 
} 
} 

정규 표현식 버전은 분명히 나는 ​​억 area=의 다른 값에 대한 진술, 그리고 나는 정규 표현식에 변수를 추가 할 수있는 방법을 찾을 수없는 경우 싶지 않아요.

그래서 나는 마지막으로 몇 가지 문자열 조작 명령을 발견하고 함께이 넣어 :

var url = window.location.href; 
var startOf=url.indexOf("=")+1; 
var endOf=url.indexOf("&"); 
var loc =url.substring(startOf,endOf); 

var links = document.getElementsByTagName('a'); 

for (var i = 0; i < links.length; i++) { 
var link = links[i]; 
if (url.indexOf("area=")>=0 && url.indexOf("gather=")<0) { 
    link.addEventListener('click', function() { 
localStorage.steps=Number(localStorage.steps)+1 
localStorage[loc+"Steps"]=Number(localStorage[loc+"Steps"])+1 
     alert(localStorage[loc+"Steps"] +" in local"+loc); 
    }, true); 
} 
} 

을 두 번째 조건이 거짓 일 때조차 계산 어떤 이유로. 문법을 어딘가에서 잘못 알아 듣는 간단한 사례인가, 아니면 Greasemonkey 버그인가? 콘솔에 오류가 발생하지 않습니다.

+0

'url.indexOf ("gather =") <0'이 아니어야합니까? –

+0

실제로 당신 말이 맞아 ... 나는 그것을 시도 할 것이다. 그러나 -1을 돌려 주어야하고'== - 1' 또는'=== - 1' 일 때조차도 작동하지 않는다. 나는 그것이 도움이 될지 모르겠다. ...이 놈의 스크립트를 테스트하면 적어도 20 개의 계란을 모으도록했다. 나는 지금까지는 원하지 않았다. –

+0

@BGR Nope는 여전히 달걀 클릭뿐만 아니라 계단을 계산한다 ... argggg , 나는 그것이 좋은 지적 이었기 때문에 나의 질문에서 그것을 바꿨다. –

답변