Adobe Air에 몇 가지 문제가 있습니다. 내 응용 프로그램에는 다소 복잡한 아키텍처가 있습니다. 기본 HTML 창은 iframe에 javascript에 대한 참조 (예 : DWRengine.js, jquery.js, main.js 등)를로드합니다. 그것은 내 스크립트와 DWR에서 널리 사용되는 'eval'함수에 대한 Air의 javascript 제한을 피하기 위해 수행되었습니다.Adobe Air에서 Iframe의 상단 창에 액세스
main.js 파일에서 주 윈도우의 버튼과 링크에 이벤트 리스너를 추가하려고합니다.
이 같이:
$(document).ready(function(){
$('body', top.document).click(function(){alert('a');});
});
을하지만 아무런 효과가 없습니다! top.document
은 정의되지 않았습니다.
메인 페이지를로드하는 동안 이벤트를 바인드 할 수 없습니다. 메인 페이지를로드하는 동안 메인 페이지 onload
이벤트 후에 만로드됩니다.
도와주세요.
미리 감사드립니다. Mike.
감사합니다. 그러나 전체적인 문제를 해결하지는 못했습니다. 이제는 라이브러리에서 함수를 호출 할 수 있지만 대부분의 작업은 jquery를 사용하여 요소를 표시하고 숨 깁니다. jquery가로드되고 iframe에서 호출되는 한, 기본 창 문서가 아닌 iframe 문서가 사용됩니다. – Mikhail
하나의 샌드 박스에서 다른 요소를 참조 할 수 없을 것이라고 생각합니다. iframe에 전체 UI가 포함되도록하고 응용 프로그램을 사용하여 상호 도메인 요청 및 파일 시스템 액세스와 같은 공중 작업을 수행하지 마십시오. – meouw
또한 eval() ing은 무엇입니까? 아약스 응답의 JSON 일 뿐이라면 공기가 허용합니다. – meouw