2010-02-22 4 views
0

iframe을 통해 페이지가로드 된 후 jQuery에 문제가 있습니다.jQuery iframe 문제

다음은 작동 방식입니다. Mainpage.php에는 사진/파일을 업로드 할 때 사용하는 iframe이 있습니다. Mainpage.php에는 사진/파일을 표시하는 데 사용하는 div가 있습니다. div는 HTML을 검색하여 div 안에 배치하는 ajax 호출로 채워집니다. Mainpage.php를 방문하여 Ajax를 실행하고 사진/파일을로드하는 사진 링크를 클릭하면 모든 것이 잘 작동합니다.

문제점 : iframe을 표시하는 "새로운"버튼이 있습니다. iframe 페이지에서 양식 업로드를 사용하여 사진을 서버에 업로드 한 다음 성공한 경우 동일한 Ajax 코드를 실행하는 자바 스크립트 문자열을 에코하여 해당 div의 사진을 표시합니다. 모든 것이 작동하고 Mainpage.php의 div를 업데이트합니다. 그러나 사진이 표시되지만 jQuery 기능이 더 이상 작동하지 않으므로 내 tablesorter 기능이 작동하지 않습니다 (오류 : 문서가 null 임). 그러면 사진이 표시되지 않습니다. (jQuery가 테두리를 표시하는 요소에 적용되는 클래스에 연결된 CSS를 사용합니다.) 내 사진 갤러리에 visuallightbox를 사용하고 이미지를 더 이상 보이지 않게하는 jQuery JavaScript를 사용하고 있습니다. 사진로드로 얻는 오류는 "uncaught exception.....NS_ERROR_INVALID_POINTER"입니다.

해결 방법/해결 방법에 대한 아이디어가 있으면 알려주세요. 감사.

답변

0

정확히 무엇을 말하는지 알기는 어렵지만 문제는 iframe에서 실행중인 코드 (POST의 응답으로 실행되는 코드)와 관련이 있다고 생각됩니다.)는 상위 페이지의 코드와 다른 jQuery 주 객체로 다른 페이지에 있습니다.

iframe 코드가 부모에게 전화하여 정보를 전달하도록 설정해보십시오. (특히 IE에서는) iframe에서 객체를 인스턴스화하고 부모 윈도우로 객체를 전달하고 싶지는 않습니다. iframe을 가비지 수집하자마자 IE는 부모 창에서 해당 객체를 참조 할 때마다 놀라기 시작합니다.

iframe에서 상위 창 jQuery 개체에 window.parent.$으로 연결할 수 있습니다.

+0

감사합니다. 문제는 jquery를 사용하는 제 3자가 작성한 .js 파일과 관련이 있다는 것을 알았습니다. 내가 부모가 div로 제안, 그때 내가 바로 하이퍼 링크를 배치하고 HTML을 다시로드하는 일을 표시 할 수있는 유일한 방법을 발견했다. – Ronedog