2017-04-21 3 views
0

UIWebView을 사용하여 웹 사이트를 표시하고 있습니다. 사용자가 버튼을 누르면 URL, 제목 및 이미지를 가져 오는 struct이 만들어집니다. 타이틀 UIWebView-Swift 3.0에서 JavaScript 사용

, 나는

let titleFromJS = mainWebView.stringByEvaluatingJavaScript(from: "document.querySelector(\".c-page-title\").textContent;")!를 사용하지만, 이미지를 위해, 그것은 어렵습니다. 이미지 링크는 <source srcset>으로 싸여 있으며 <picture> 컨테이너로 싸여 있습니다. c-picture 인 클래스 ID로 찾으려하지만 원본 컨테이너의 내용을 가져 오는 방법을 모르겠습니다.

아무도 도와 줄 수 있습니까? 어떤 도움이라도 대단히 감사 할 것입니다 !! 미리 감사드립니다.

건배, 테오 source

답변

0

봅니다 힘을 랩핑 해제 피하기 위해 첫 번째 JS 문에서 결과를, 그렇지 않으면 앱이 그 요소가 존재하지 않아야 충돌합니다. mainWebView.stringByEvaluatingJavaScript의 결과가 nil이면 반환하는 보호 진술이 더 나은 대안 일 수 있습니다.

guard let titleFromJS = mainWebView.stringByEvaluatingJavaScript(from: "document.querySelector(\".c-page-title\").textContent;") else { 
    return 
} 

사진의 소스에 액세스하려면, 당신은이 picture 요소 내부하여 img 요소에서 얻을 수 있습니다 document.querySelector('.c-picture > img')]0].currentSrc.

+0

팁 주셔서 감사합니다. 그러나 답변이 작동하지 않는 것 같습니다. 요소를 검사 할 때 html 소스 코드 이미지를 첨부했습니다. 그게 도움이 되니? –

+0

지금 작동하는지 알려주세요. 나는'#c-picture '를'.c-picture'로 바꿨다. – mattsven