2013-12-22 4 views
0

저는 JS를 처음 사용합니다. Greasemonkey를 사용하여 웹 페이지에서 자동으로 양식을 채우는 스크립트를 만들려고합니다.xx가 존재하는 경우

페이지에 오류 코드가있는 경우 스크립트에서 '뒤로'버튼을 클릭합니다.

<div> 
    <div id="registration_error" class="errBlock" style="color:Red;"> 
    <ul><li>Address is required.</li></ul> 
</div> 

내가 올바른지 아닌지에 대해 알지 못하고 일부 가정 사항을 만들었습니다.

if(document.getElementById("registration_error).innerText.Contains("Address is required.") 
{ 
document.getElementsByClassName('btnRegister')[0].click(); 
} 

또한 내가 내 지식에 많은 조합을 시도 등 등
if(document.getElementsByClassName('errBlock').innerText.Contains("Address is required") 

if ("#registration_error").innerText.Contains("Address is required") 

을 시도했다. 버튼을 클릭하면 정상적으로 작동하지만 if 조건을 파악할 수 없습니다.

미리 감사드립니다.

답변

2

시도한 코드 중 첫 번째 코드가 가장 정확합니다.

첫 번째 부분 인 document.getElementById("registration_error")은 정확합니다 (사용자의 인용 부호가 누락 된 경우는 제외).

그런 다음 registration_error div 안에 HTML 코드를 가져 오려고합니다. 이렇게하는 올바른 방법은 .innerHTML입니다. (.innerText은 브라우저와 호환되지 않습니다. (내에서 작동하지 않았습니다)

HTML에 "Address is required"이 있는지 확인하는 마지막 부분이 잘못되었습니다. 약간의 텍스트가 문자열에 포함되어 있는지 확인하는 올바른 방법은 "hello world".indexOf("llo")을 사용하는 것입니다. 이 함수는 문자열이있는 경우 해당 위치를 반환하거나 문자열에 문자열이 포함되어 있지 않으면 -1을 반환합니다.

그래서, 최종 if 문은 다음과 같습니다 당신을 위해

if(document.getElementById("registration_error").innerHTML.indexOf("Address is required.") !== -1){ 
    document.getElementsByClassName('btnRegister')[0].click(); 
} 

작동합니다 그. Javascript 은 대소 문자를 구별하는이므로 올바른 결과를 얻으십시오.

+1

세부 정보를 설명하고 수정 방법을 알려주는 데 시간을 내 주셔서 감사드립니다. 코드가 완벽하게 작동했습니다! –

+1

'.innerText'는 모든 브라우저에서 사용할 수 없기 때문에 확실히 존재하지 않습니다. –

+0

@KyleMuir : 고마워, 네 말이 맞아. 나는 그것을 나의 대답으로 편집했다. –