2011-08-22 2 views
3

나는 phonegap을 사용하여 jQuery 모바일 응용 프로그램을 구축 중입니다. iframe (아마 웹킷)의 페이지에 액세스하려고 시도했을 때 Unsafe JavaScript attempt to access frame의 문제점이 있습니다. 짜 맞춘 페이지와 부모 페이지 모두 로컬에 있습니다. 시작 위치는 file:///입니다.이 질문은 어디에 있습니까? Unsafe JavaScript attempt to access frame in Google Chrome하지만 내 전화에서는 passing the --allow-file-access-from-files switch at startup을 사용할 수 없습니다. 또한 인터넷에 내 앱을 배포하고 싶지 않습니다 .Is 이 문제를 해결할 다른 옵션이 있습니까? 브라우저에서 수정하지 않아도되는 것이 좋습니다. 감사합니다.안전하지 않은 JavaScript가 URL이있는 프레임에 액세스하려고합니다. 로컬입니다.

답변

2

Webkit이 동일한 규칙을 따르는 지 확실하지 않지만 선례가 있습니다.

https://developer.mozilla.org/en/Same-origin_policy_for_file%3a_URIs

게코 1.8에서

이전

, 두 파일 : URI를이 동일 출처로 간주됩니다. 즉, 로컬 디스크의 모든 HTML 파일은 로컬 디스크의 다른 파일을 읽을 수 있습니다.

Gecko 1.9부터 파일은 다른 특정 파일 만 읽을 수 있습니다. 특히, 원래 파일의 상위 디렉토리가 대상 파일의 조상 디렉토리 인 경우에만 파일이 다른 파일을 읽을 수 있습니다. 그러나 디렉토리는이 방법으로로드 할 수 없습니다. 다른 파일, bar.html에는 액세스 파일 foo.html을있는 경우

예를 들어, 부하가 bar.html에는 중 하나를 포함 foo.html 파일이나 디렉토리에서 같은 디렉토리에있는 경우에만 성공합니다 foo.html과 같은 디렉토리 내에 있습니다.

이 정책은 XMLHttpRequest, XSLT 및 XBL을 포함하여 동일한 출처 검사를하는 모든 항목에 영향을줍니다.

교차 창 DOM 액세스에 대한

, 각 파일 하나 개를 제외하고, 별도의 원점으로 처리됩니다 파일이 그렇지 않으면, 이 동일 출처 정책은 다음을로드 할 수있을 것이라고 다른 파일에서로드되는 경우 그들은 같은 기원을 가진 것으로 간주됩니다. 이로드는 서브 프레임, 링크, 위치 설정, window.open() 호출 또는 호출을 통해 이 발생할 수 있습니다. 파일 /home/user/foo.html은 프레임과 프레임 /home/user/subdir/bar.html이다 중 하나이면

는 예를 들어, 프레임과 프레임은 동일을 공유하는 것으로 간주되어 유래. 반면에 /home/user/subdir/foo.html 파일이 프레임 세트이고 프레임이 /home/user/bar.html 인 경우 프레임과 프레임 세트는 다른 시작을 가진 것으로 간주됩니다. URI를 : 사용자가 엄격 파일에서 동일한 원본 정책을 적용 을 원하지 않는 경우 true로 기본값은 false로 설정할 수 있습니다

새로운 security.fileuri.strict_origin_policy 기본 설정.

+1

감사합니다.하지만 이미 하나의 디렉토리에 두 개의 파일을 넣었습니다. 파이어 폭스는 잘 실행되지만 웹킷 기반 브라우저는 실패했습니다. – Shisoft

관련 문제