[jquery] jQuery로 iframe의 콘텐츠에 액세스하는 방법은 무엇입니까?

jQuery를 사용하여 iframe의 콘텐츠에 액세스하려면 어떻게해야합니까? 이 작업을 시도했지만 작동하지 않습니다.

iframe 콘텐츠 : <div id="myContent"></div>

jQuery : $("#myiframe").find("#myContent")

어떻게 액세스 할 수 myContent있습니까?


jquery / javascript 와 유사 : iframe의 콘텐츠에 액세스 하지만 허용되는 답변은 내가 찾던 내용이 아닙니다.



답변

다음 contents()방법 을 사용해야합니다 .

$("#myiframe").contents().find("#myContent")

출처 : http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/

API 문서 : https://api.jquery.com/contents/


답변

<html>
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">

$(function() {

    //here you have the control over the body of the iframe document
    var iBody = $("#iView").contents().find("body");

    //here you have the control over any element (#myContent)
    var myContent = iBody.find("#myContent");

});

</script>
</head>
<body>
  <iframe src="mifile.html" id="iView" style="width:200px;height:70px;border:dotted 1px red" frameborder="0"></iframe>
</body>
</html>


답변

iframe의 소스가 외부 도메인 인 경우 브라우저는 iframe 콘텐츠를 숨 깁니다 (동일한 출처 정책). 해결 방법은 외부 내용을 파일에 저장하는 것입니다 (예 : PHP).

<?php
    $contents = file_get_contents($external_url);
    $res = file_put_contents($filename, $contents);
?>

그런 다음 새 파일 내용 (문자열)을 가져 와서 html로 구문 분석합니다 (예 : jquery에서).

$.get(file_url, function(string){
    var html = $.parseHTML(string);
    var contents = $(html).contents();
},'html');


답변