2011-08-04 3 views
0

UIWebView의 내부 DOM 정보를 얻기 위해 일부 JavaScript 코드를 주입하고 있습니다. 현재, 모든 코드는 잘 울리고 있지만, 큰 문제를 만났습니다. 다른 도메인의 IFRAME에있는 문서입니다. 도메인 간 보안 정책에 따라 IFRAME의 DOM에 액세스 할 수 없습니다. 프레임에 현재 페이지와 다른 주소가있는 문서가 있으면 IFRAME의 DOM에 액세스 할 수 없습니다. 내 UIWebView은 인터넷상의 사이트를 처리 할 수 ​​있어야합니다. 이 보안 정책을 회피 할 수있는 방법이 있습니까?UIWebView 자바 스크립트 삽입에서 다른 도메인의 다른 프레임에서 HTML DOM에 액세스 할 수 있습니까?

답변

1

UIWebView? 아니오

주위에있는 유일한 방법은 HTML을 직접 구문 분석하는 것입니다. 라이브러리 (Element Parser이 좋습니다)를 사용하는 것이 좋습니다. 당신은 분명히 IFRAME 태그를 찾아 그 내용을 재귀 적으로로드해야합니다.

+0

런타임시 클라이언트 측에서 JavaScript로 동적으로 생성 된 HTML 요소조차 처리해야합니다. 직업은 웹 브라우저 자체를 다시 구현하게 될 수 있습니다 ... – Eonil

+0

어쨌든 답변 주셔서 감사합니다. JavaScript 삽입을 파기하지 않을 수 있습니다. :) – Eonil

0

문서의 IFrame은 javascript 변수 document.frames에서 찾을 수 있습니다. 이것은 모든 iframe을 포함하는 배열입니다. 이를 통해 자바 스크립트를 통해 iframe의 DOM에 액세스 할 수 있습니다.

자바 스크립트를 사용하면 특별한 요청을하고 iframe 콘텐츠를 처리하여 UIWebViewDelegate에 전화를 걸 수 있습니다.

+0

IFRAME의 DOM에서이 작업이 다른 도메인의 문서를 포함합니까? – Eonil

+1

아니요, 보안상의 이유로 불가능합니다. 죄송합니다. 크로스 도메인 부분을 읽었습니다. 이것이 앱을 통해 가능하다면, 사람들은 자신의 앱으로 자신의 웹 사이트를 찾아서 교차 도메인 스크립팅에 사용합니다. – Thys

+0

보안의 이유를 설명해 주셔서 감사합니다 :) – Eonil

관련 문제