从其他子域名页面访问子域名iframe网址

时间:2014-04-07 18:18:05

标签: javascript jquery html iframe same-origin-policy

我正在尝试访问托管在同一域内的子域上的iframe的iframe contentWindow属性。 所以我在a.domain.com(承载父页面的角色)上有这个代码:

<script type="text/javascript">
    $(document).ready(function () {        
        $('#frame').load(function () {            
            var iframe = document.getElementById('frame');            
            if (iframe) {
                 var item = iframe.contentWindow;             
                if (item.indexOf("Completed") != -1) {
                    window.location.href = '../Home/Completed/';                   
                } else {
                    window.location.href = '../Home/PayAgain/';
                }
            }            
        });
    });
</script>

实际的iframe内容位于b.domain.com上,我想获取iframe中的当前页面。

我看到一些示例,我需要在a.domain.com和b.domain.com中设置document.domain =“domain.com”,但是例如我需要在a.domain.com中设置什么?和b.domain.com有关document.domain?

b.domain.com中的哪些页面我需要设置document.domain值?

提前致谢,Laziale

2 个答案:

答案 0 :(得分:1)

我遇到了同样的情况,我发现使用window.postMessage是一种更好的框架间通信方式:https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage

如果要使用您提到的方法,则在框架中加载的每个页面都需要在加载时手动设置document.domain。父页面也需要设置它。它只是文档对象的内置javascript属性。

答案 1 :(得分:0)

在两个页面中添加document.domain ='your.domain'。

像这样。不要忘记parent.top

document.domain ='corp.local'; 只有父母喜欢

document.domain ='corp'; 不行。

正如我在这里提到的那样。 javascript get iframe url's current page on subdomain

这份文件有所帮助。 http://javascript.info/tutorial/same-origin-security-policy