Javascript 从其他子域页面访问子域iframe url
我正在尝试访问承载在同一域中的子域上的iframe的iframe contentWindow属性。 因此,我在a.domain.com(托管父页面角色)上有以下代码:Javascript 从其他子域页面访问子域iframe url,javascript,jquery,html,iframe,same-origin-policy,Javascript,Jquery,Html,Iframe,Same Origin Policy,我正在尝试访问承载在同一域中的子域上的iframe的iframe contentWindow属性。 因此,我在a.domain.com(托管父页面角色)上有以下代码: $(文档).ready(函数(){ $('#frame').load(函数(){ var iframe=document.getElementById('frame'); if(iframe){ var item=iframe.contentWindow; 如果(项目索引(“已完成”)!=-1){ window.location
$(文档).ready(函数(){
$('#frame').load(函数(){
var iframe=document.getElementById('frame');
if(iframe){
var item=iframe.contentWindow;
如果(项目索引(“已完成”)!=-1){
window.location.href='../Home/Completed/';
}否则{
window.location.href='../Home/payreach/';
}
}
});
});
实际的iframe内容位于b.domain.com上,我想在iframe中获取当前页面
我看到了一些需要在a.domain.com和b.domain.com中设置document.domain=“domain.com”的示例,但例如,关于document.domain,我需要在a.domain.com和b.domain.com中设置什么
我需要在b.domain.com的哪些页面中设置document.domain值
提前感谢,Laziale我也遇到了同样的情况,我发现使用window.postMessage是一种更好的帧间通信方式:
如果要使用您提到的方法,框架内加载的每个页面都需要手动设置document.domain on load。父页面也需要设置它。它只是document对象的内置javascript属性。在两个页面中添加document.domain='your.domain' 像这样。别忘了双亲 document.domain='corp.local'; 只有父母喜欢 document.domain='corp'; 不行 正如我在这里提到的。 这份文件很有帮助。
我也查看了postMessage功能,但我无法对位于iframe中、托管在b.domain.com上的文件进行任何更改。你能告诉我你是如何在a.domain.com和b.domain.com中使用一些虚拟数据的postMessage功能的吗。谢谢如果您不能同时更改a.domain.com和b.domain.com中的代码,那么您将无法在两者之间进行通信。您可以设置document.domain,但不能设置它。因此,您可以将“a.domain.com”更改为“domain.com”,但不能将“a.domain.com”更改为“b.domain.com”。您需要访问代码才能设置document.domain属性并执行window.postMessage方法。您能否提供代码示例?如果我有权访问代码,我该怎么做?谢谢,代码视图不起作用。希望您能够理解:函数sendToFrame(){var mf=document.getElementById('myFrame').contentWindow;//您发送的消息由您决定,只要它是一个字符串。我使用JSON,将其字符串化,然后在另一端解析var jsObj={Content:“Some Data”};//将消息发送到目标mf.postMessage(JSON.stringify(jsObj),“”;}
<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>