确定帧是否是跨域的最佳方法?

时间:2010-03-25 14:54:56

标签: javascript iframe cross-domain

确定某个框架是否为跨域的最佳方法是什么?这就是我现在所拥有的:

<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 个答案:

答案 0 :(得分:0)

您是否只能获得IFRAME的src属性并检查协议,端口和主机是否不同?