2010-03-25 7 views
3

Каков наилучший способ определить, является ли кадр междоменным? Вот что у меня сейчас:Лучший способ определить, является ли кадр междоменным?

<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> 

В принципе, браузер выдает исключение при попытке получить доступ к location.href свойства фрейма, если это кросс-домен. Но можно ли полагаться на это поведение для всех браузеров? Есть ли лучший способ реализовать функцию isCrossDomain?

Спасибо.

+1

Это, наверное, то, что я сделал бы, или что-то в этом роде. – Pointy

ответ

0

Не можете ли вы получить атрибут src IFRAME и проверить, отличаются ли протокол, порт и хост?

+0

Атрибут src не изменяется при изменении местоположения iframe. И нет, вы не можете получить доступ к этой информации, если это междоменный домен. – Emmett