2009-07-11 2 views
19

window.top.Location 개체와 관련된 도메인 간 정책에는 매우 특별한 경우가 있습니다 ...IFrame은 top.Location 객체 (도메인 간)와 정확히 어떤 역할을합니까?

도메인의 www.bbb.com에서 IFrame A가 있다고 가정 해 봅시다. www.aaa.com.

IFrame을 내부의 페이지 수 :

  • 가에서는 window.location에 window.top.location 비교 (이 프레임되고있어 여부를 감지하는)
  • 통화 window.top.location.replace (에서는 window.location() 자체에 다른 곳

을 리디렉션 "임의의 문자열")

  • 통화 window.top.location.replace 리디렉션하지만 할 수 없습니다합니다 :

    • 경고, document.write를, 또는 어떤 다른 변수에
    • 연결하여 그것을 window.top.location.href의 출력의 어떤 종류의 일, 또는 유용한 방법
    • 전화 window.top.location에서 사용 .reload()

    이들은 내가 빨리 찾을 수있는 것들입니다. 나는 다른 가장자리 사건이있을 것이라고 확신한다.
    그것은 상단이 다른 도메인에있는 경우

    이 어디 설명되어 있습니다 ... 약간의 허용 된 것들에 대한 제외 는 따라 top.location 객체의 사용을 허용하지 않는 브라우저 것 같아?
    허용 목록에있는 것들이 무엇인지 확인할 수 있습니까?
    HTML 표준이며, 모든 브라우저에서 동일하게 구현됩니까? 아니면이 세미 - 무작위의 구현입니까?

  • +1

    답변을 찾으면 특히 "여기에 문서가 있습니까?"라고 대답 한 경우 게시하십시오. 나는 과거에 IE 교차 도메인 보안 제한 사항을 다루어야했는데, 항상 할 수있는 것과 할 수없는 것에 대한 지식을 습득 한 것 같습니다. 나는 실제로 어떤 문서도 보지 못했습니다. –

    +0

    확실히,하지만 지금까지 아무 것도 찾지 못했습니다 (따라서 여기에 질문이 있습니다) –

    답변

    6

    보안 규칙은 브라우저 버전에 따라 다릅니다. 일반적으로 최신 버전은 더 엄격한 규칙을 가졌지 만 더 미세하게 조정됩니다.

    이전 버전의 브라우저는 자유롭게 상위 프레임의 위치 객체에 액세스 할 수 있다고 생각합니다. 조금 더 새로운 브라우저는 완전히 거부하고 현재 버전은 위치 객체를 비교할 수 있지만 읽지는 못하게합니다.

    이 문서는 찾을 수 있지만 각 브라우저마다 다르며 각 브라우저 버전마다 다를 수 있습니다. 내가 아는 한, 이것에 대한 실질적인 기준은 없습니다. 각 브라우저 공급 업체는 웹 사이트 제작자에게 유용성을 유지하면서 가능한 한 사용자를 보호하려고 시도합니다. 일반적으로 모든 브라우저에서 국경 근처에있는 항목이 작동한다고 가정하거나 향후 버전에서 계속 작동 할 것이라고 가정 할 수 없습니다.

    +1

    "위치 개체를 비교하지만 그들로부터 읽지는 않습니다"는 무엇을 의미합니까? 삽입 된 페이지가 최상위 페이지의 URL을 알 수 없으면 어떻게 위치를 비교할 수 있습니까? – Pacerier

    +1

    @Pacerier : location 속성이 객체이기 때문에 페이지의 URL을 'href'속성으로 포함합니다. 위치 객체가 다른 도메인의 URL을 포함하고 있어도 위치 객체를 비교할 수 있지만 URL이 다른 도메인의 객체 인 경우 위치 객체에서 'href' 속성을 읽을 수 없습니다. – Guffa

    +0

    해명 해 주셔서 감사합니다 =)이 제한을 무시하고 "컨테이너 페이지"의 URL을 얻는 몇 가지 알려진 방법은 무엇입니까? – Pacerier

    8

    정확하게 이것은 HTML5 standard in section 5.5.3.1으로 지정됩니다.

    +0

    +1. 그것은 응답에서 말한 것과 똑같습니다. –

    +0

    스펙이 사람이 읽을 수 있기를 바랍니다. "다음 예외가 있습니다. href setter, 항목 설정 객체에 의해 지정된 책임있는 탐색 컨텍스트가 Location 객체와 연관된 탐색 컨텍스트에 익숙한 경우"WHAT ??? –

    관련 문제