2010-12-16 3 views
1

내 iPhone 앱에서 here 메서드를 기반으로하는 epub 리더는 epub을 파싱하여 UIWebviews를 만들었지 만 약간의 문제가 있습니다. iPhone 화면 (320px) 너비보다 큰 이미지가 epubs에 있습니다. UIWebview ([view stringByEvaluatingJavaScriptFromString:SomeJavaScriptString])에서 호출 할 수있는 자바 스크립트 메서드가 있으며 epub를 수동으로 변경하지 않고 프로그래밍 방식으로 해당 이미지를 제거 할 수 있습니까?UIWebview에서 이미지 제거

업데이트 : 원본 파일이 HTML이 아닌 XML 파일 일 수 있습니까? 이 문서에있는 모든 이미지를 숨기려면 document.getElementById('id_of_your_image').style.visibility = 'hidden'

UPDATE,

for (i=0; i<document.getElementsByTagName("img").length; i++) { 
    document.getElementsByTagName("img")[i].style.visibility = 'hidden'; 
} 

트릭을 수행해야합니다

답변

4

당신은 아마 같은 것을 원하는.

+0

예, 이미지의 ID를 알고 싶지 않습니다. 이미지에 ID가 없으므로 OP에서 말했듯이 수동으로 EPUB를 수정하고 싶지는 않습니다. "img"태그로 모든 요소를 ​​선택하고 숨길 수있는 방법이 있습니까? –

+0

@ 리차드, 내 업데이트를 참조하십시오. –

+0

이상하게도 iPhone Safari에서 작동하지만 앱에서 제대로 삽입되지 않습니다. 그러나 다른 JS를 주입 할 수 있습니다 ('alert ("hello world!"))) –

1
var images = Array.prototype.slice.call(document.getElementsByTagName('IMG'), 0); 
var imageCount = images.length; 
for (var i = 0; i < imageCount; i++) { 
    var image = images[i]; 
    image.parentNode.removeChild(image); 
} 
+0

내가이 JS를 주입하면 아무것도 UIWebview에서 발생하는 것처럼 보입니다. 뷰가로드되지만 아무 것도 화면에서 나타나지 않고이 결과가'nil'입니다 ...이 JS 코드가 작동하는지 확인할 수도 있습니다. window.scrollTo (0, 0);'. 코드가 제대로 주입되지 않는 이유에 대한 아이디어가 있습니까? –

+0

처음 두 줄을 실행 한 다음 경고 (imageCount)를하면 어떻게됩니까? ? – Zeppomedio

+0

그것은 0을 반환합니다. 문제는 HTML 파일이 아닌 xml 파일 (실제로는 XHTML)일까요? –

1

왜 안 세부 사항을 보는 것이 중요 위치를 그래프 나 이미지를 처리하지 않는 경우 :

1)에 따라이 320 또는 640 픽셀의 이미지에 최대 폭을 설정 일부 CSS 쓰기 오리엔테이션 .... 다른 오리엔테이션을 위해 다른 CSS를 사용하는 방법은 http://www.thecssninja.com/css/iphone-orientation-css을 참조하십시오.

2) </body>이 작동하기 직전에 <style> 요소가 추가 된 다른 스타일이나 스타일 시트 링크 뒤에 CSS를 각 HTML 파일에 삽입하십시오.

?

그런 식으로 이미지를 볼 수 있지만 한 페이지 너비까지 확장되지는 않습니다.

<a href='zoom://x'> 여기에서 x는 이미지 파일 이름입니다. 그런 다음 UIWebViewDelegate 'shouldStartLoadWithRequest'함수에서 request.URL.scheme == "zoom"이 있는지 확인하십시오. iBooks와 같이 확대/축소 가능한 컨테이너에서 이미지 x가 포함 된 새로운보기를 푸시 할 수 있습니다.

+0

320px 또는 480px를 의미하지 않습니까? 640 px는 iPhone 4 용이며 방향에 의존하지 않습니다. 위대한 대답이지만, 나는이 솔루션이 정말로 마음에 듭니다. 사용자에게 이미 가지고있는 것을 제공합니다. +1 –