2010-03-25 60 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 2010-03-25 14:58:11

回答

0

你不能只是得到IFRAME的src屬性,並檢查協議,端口和主機是不同的?

+0

當iframe位置發生更改時,src屬性不會更改。而且,不,在跨域時無法訪問該信息。 – Emmett 2010-03-26 15:22:51

相關問題