2011-12-26 3 views
0

웹 사이트의 콘텐츠를 앱에 압축하는 iPhone 앱을 작성하고 싶습니다. 첫 번째 문제 : 사용자 데이터를 입력하십시오. 나는 다음을 시도했다 :UIWebView의 텍스트 필드에서 요소 이름으로 된 파일

[webView stringByEvaluatingJavaScriptFromString:@"document.username.text.value='testUser'"]; 

내가 그 때 자바 스크립트를 실행할 수 있다는 것을 확인했다. 그러나 그 텍스트 필드에 succes를 채우지 않았습니다. 텍스트 필드에는 할당 된 ID가없고 이름 (사용자 이름) 만 있습니다. ID가없는 객체로 인터넷에서 예제를 찾지 못했습니다. 자바 스크립트에 익숙하지 않아서 도움이 필요합니다. 미리 감사드립니다.

답변

2

는이 문서의 첫 번째 양식과 입력이 "이름"라는 가정 :

document.forms[0].username.value = "testUser" 

또는 경우를 DOM에이 조작을 위해 완전히로드와 준비가되어 있음을, 내가를 사용하는 것이 좋습니다 그래서

document.getElementById("username").value = "testUser" 

을뿐만 아니라 UIWebView 로딩이 완료된 후 스크립트를 평가해야합니다 : 당신은 당신이 할 수있는 입력 요소에 id="username"를 추가 프로토콜의대리자 메서드.

+0

고마워! 완벽하게 작동합니다! –

+0

양식 [0]이있는 DOM에 대한 액세스를 본 적이 없으며 완벽하게 작동했습니다. 의견을 보내 주셔서 감사합니다. – Alex

+0

오랫동안 나는이 답변을 썼지 만 ... (예 : [DOM level 1] (http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one -html.html]))) 그러나 나는'getElementsByTagName ("form")'이 오늘날보다 표준 적이라고 생각한다. –

1

사용 $('input[name="name"]').text('Hello');

당신이 jQuery를 사용하지 않는 경우, 당신은 할 수 있습니다 :

var myInput = table.getElementsByTagName("input"); 
for (var i = 0; i < myInput.length; i++) { 
    if(myInput[i].getAttribute("name")=="name") { 
     myInput[i].value = "Hello"; 
     break; 
    } 
} 

변경 "이름"과 "안녕하세요"필요합니다. :)

당신은 단지 당신은 아마 이런 식으로 할 필요가 DOM 방법을 사용하려면
+0

나를 위해 작동하지 않았다 ... –

관련 문제