2010-03-25 5 views
3

프레임이 크로스 도메인인지 여부를 확인하는 가장 좋은 방법은 무엇입니까? 여기에 내가 지금 가지고있는 무엇 : 나는 크로스 도메인의 경우 프레임의 같이 location.href 속성에 액세스하려고 할 때프레임이 교차 도메인인지 확인하는 가장 좋은 방법은 무엇입니까?

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
$(document).ready(function() { 
    $("#foo").load(function() { 
     alert(isCrossDomain(window.frames["foo"])); 
    }); 
}); 

function isCrossDomain(frame) { 
    try { 
     var test = frame.document.location.href; 
     return false; 
    } catch (e) { 
     return true; 
    } 
} 
</script> 
</head> 
<body> 
<iframe src="frame.html" id="foo" name="foo"></iframe> 
</body> 
</html> 

기본적으로, 브라우저는 예외가 발생합니다. 그러나 모든 브라우저에서이 동작에 의존하는 것이 안전합니까? isCrossDomain 함수를 구현하는 더 좋은 방법이 있습니까?

감사합니다.

+1

아마도 그게 내가하는 일일 것입니다. – Pointy

답변

0

IFRAME의 src 속성을 가져 와서 프로토콜, 포트 및 호스트가 다른지 확인할 수 없습니까?

+0

iframe 위치가 변경되면 src 특성이 변경되지 않습니다. 아니요, 교차 도메인 일 때 해당 정보에 액세스 할 수 없습니다. – Emmett

관련 문제