2012-03-19 4 views
2

양식의 대상 속성을 사용하여 jquery/php로 파일 업로드 비동기를 수행하고 있습니다. 대상은 "uploads"라는 이름의 내 iframe입니다. PHP 파일에서 오류를 관리하기 위해 iframe 본문 내부에있는 echo와 함께 "ERR_TOO_LARGE_FILE"과 같은 문자열을 반환합니다.iframe 콘텐츠가 준비되면 상위 페이지에서 iframe 콘텐츠에 액세스하십시오.

문제는 iframe이 준비되면 감지하고 오류가 있는지 콘텐츠에 액세스하는 방법을 모르겠다는 것입니다. 다음 코드를 시도했지만 작동하지 않습니다.

$("#uploads").on("load", function() { 
    alert($(this).html()); 
}); 

경고 상자는 있지만 내부에는 아무것도 표시되지 않았습니다. 대신 준비 이벤트를 사용해 보았으나 이번에는 아무 것도 나타나지 않습니다.

당신이 더 좋은 해결책을 가지고 있다면이 해결책이나 다른 해결책을 얻는 방법을 알고 싶습니다.

+0

사이트 간 사이트입니까? – jackJoe

+0

아니요, 양식 파일을 업로드하는 내 PHP 파일 중 하나를 말합니다. – maniak

+2

iframe 내부에서 u는 그냥'top.myFunction()'을 수행 할 수 있습니다. 원하는 모든 것을 트리거하고 페이지가 완전히로드되면 jquery 준비 함수를 사용할 수 있습니다. – Val

답변

4

iframe의 콘텐츠를 수정할 수 없기 때문에 적어도 jquery를 사용하여 iframe의 콘텐츠에 직접 액세스 할 수는 없습니다. .contents() & .find()을 사용하면 필요한 정보를 얻을 수 있도록 iframe에서 html을 가져올 수 있습니다.

그래서,

$("#uploads").on("load", function() { 
    alert($(this).contents().find('html').html()); 
}); 

는 iframe에 html로의 내용을 반환해야합니다. 찾고있는 특정 요소를 알고있는 경우 태그 ID로 'html'을 바꿀 수 있습니다.

+0

덕분에, 그것을 작동합니다! – maniak