2014-12-25 3 views
1

iframe 웹 페이지에서 불필요한 헤더를 제거하고 싶습니다. 이것에 다른 SO 페이지에있는 해결책은 작동하는 것을 보이지 않는다. 예 :jQuery로 iframe의 요소를 제거하십시오.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Modifying iFrame element</title> 
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.2.js"></script> 
</head> 
<body> 
<p>Let's remove the header toolbar (class "header")</p> 
<iframe id="wikipedia" src="https://en.m.wikipedia.org/wiki/Big_Ben" onload="removeHead()" style="width: 800; height: 500;"></iframe> 

<script type="text/javascript"> 

function removeHead(){ 
    $(function(){ 
     var f=$('#wikipedia'); 
     f.load(function(){ 
      f.contents().find('.header').hide(); 
     }); 
    }); 
    console.log("script complete"); 
}; 

</script>> 
</body> 
</html> 

스크립트는 실행되지만 아무 일도 발생하지 않습니다. hide() 대신 remove()를 사용하고 다른 조합은 사용하지 않으려 고 노력했습니다. 도움에 감사드립니다.

+1

위키 백과에 액세스 할 수 없으며 콘텐츠를 변경할 수 없습니다. iFrame에도 같은 출처 정책이 적용되므로 변경할 수 없습니다. – adeneo

+0

크로스 도메인 페이지로 조작 할 수 없습니다. –

+1

도메인에없는 경우 iframe 데이터를 편집 할 수 없습니다. –

답변

2

브라우저 보안으로 인해 콘텐츠는 동일한 도메인에 있지 않는 한 일반적으로 iframe을 사용하여 액세스하거나 조작 할 수 없습니다. 일부 구형 브라우저에서는 그렇지 않을 수 있지만 지금은 분명합니다.

이 내용은 Same-origin Policy에 의해 규정됩니다. http://www.dyn-web.com/tutorials/iframes/refs/iframe.php

참고 :

또한이 문서를 참조하십시오 문서가 같은 기원이있는 경우이 문서 간 상호 작용 만 가능합니다.

해결 방법 1

사용 PHP Simple DOM Parser 특정 div 요소, 또는 페이지의 특정 부분을 얻을 수 있습니다 :

include("./dom/simple_html_dom.php"); 

$html = file_get_html("https://en.m.wikipedia.org/wiki/Big_Ben"); 
$content = $html->find("#content", 0); 

echo $content->innertext; 

이 얻을 것입니다 어떤 : http://bibletools.info/script/wikipedia.php

가능성을 해결책 2

PHP Simple DOM Parser을 사용하면 헤더를 간단히 제거 할 수 있습니다. http://bibletools.info/script/wikipedia1.php

참고 : 별도의 PHP 페이지를 만들고 iframe이로 그 PHP 페이지를로드하는 경우 당신이 얻을 것 등 충돌하는 스타일

include("./dom/simple_html_dom.php"); 

$html = file_get_html("https://en.m.wikipedia.org/wiki/Big_Ben"); 

$html->find('div.header', 0)->outertext = ''; 
$html->find('.top-bar', 0)->outertext = ''; 

echo $html; 

이없는 것이 솔루션은 약간 느려질 수 있습니다 서버가 먼저 페이지를로드해야만하기 때문에 사용자에게 제공해야합니다. 그러나 실제로는 매우 효율적입니다. 나는 항상이 방법을 사용하여 큰 성공을 거둔다.

+0

@geotheory 가장 좋은 솔루션은 PHP와 PHP DOM Parser를 사용하는 것입니다. 사용하기가 아주 간단합니다. 특정 요소의 내용을 선택하고 페이지에서 원하는대로 형식을 지정할 수 있습니다. http://simplehtmldom.sourceforge.net/ – Adam

+0

원한다면 내 답변에 예제를 추가 할 수 있습니다. – Adam

+1

죄송합니다. 설명해야합니다. Simple PHP DOM 파서를 다운로드해야합니다. 이 파일에는 많은 파일들이 포함되어 있습니다. 필자가 보여준 것처럼 링크를하면 코드가 작동합니다. – Adam

관련 문제