我正在尝试访问托管在同一域内的子域上的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
答案 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.topdocument.domain ='corp.local'; 只有父母喜欢
document.domain ='corp'; 不行。
正如我在这里提到的那样。 javascript get iframe url's current page on subdomain
这份文件有所帮助。 http://javascript.info/tutorial/same-origin-security-policy