2011-10-11 4 views
0

앵커 (document.location.hash)를 사용하여 다른 요소 (예 : 현재 TAB #, 그룹 #)에 태그를 설정하는 FB 응용 프로그램이 있습니다. 표시됩니다 ...). 사용자가이 elemets를 변경할 때마다 나는 앵커 (location.hash)를 변경하고 #tag = ... 을 주소 표시 줄의 URL에 추가합니다 (사용자가 링크를 복사하여 다른 사용자에게 보냈을 때) 그는 특정보기 (동일한 페이지)로 리디렉션됩니다.주소 표시 줄의 앵커 (location.hash) 변경

앱이 독립 실행 형 사이트 인 경우 잘 작동합니다. 하지만 FB 응용 프로그램 (apps.facebook.com/myapp)에 넣을 때 - 주소 표시 줄의 URL은 변경되지 않습니다 (단, document.location.has를 읽을 때 변경 사항이 표시됨). 아마 내 응용 프로그램이 IFRAME 안에 있기 때문일 수도 있습니다. 수정할 수없는 경우 URL의 해시 부분을 변경하는 Facebook API가있을 수 있습니다. 사실

window.top.location = 'http://example.com'; 

document.location :

답변

0

이 당신은 새로운 값으로 설정하여 전체 위치를 변경할 수 있습니다 ...이 서로 다른 도메인에서 제공 않다면 부모 프레임의 location 개체의 일부를 변경할 수 없습니다 window.location은 최상위 문서를 참조하고 사용자가 브라우저의 주소 표시 줄에 표시하는 URL을 나타내는 반면 항상 현재 문서를 참조합니다.

일반적으로 현재 문서의 해시를 변경했으며 독립 실행 형 사이트 사용자가 주소 표시 줄에서 본 것처럼 프레임에서 실행되면 (응용 프로그램 캔버스) 사용자는 해당 페이지의 URL을 보지 못하고 상위 프레임 다른 도메인 및 크로스 도메인 정책의 주제에 위치합니다.

관련 문제