我的网页(mydomain.com/xyz.php)以相同和不同的来源打开。 当它以相同的原点打开时,我使用xyz.php内部的jquery代码更新了顶部窗口的html。
window.top.$("#idxzy").html(img_block);
在相同的来源中一切正常,但是当我的网页在不同的来源中打开时,此行会产生错误: xyz.php?product_id = XXXX未捕获的DOMException:阻止起源为“ htt p s://www.mydomain.com/”的框架访问跨域框架。
window.top.$("#idxzy").html(img_block);
所以我想在此处添加如下所示的条件,但是我不知道如果使用
if(same_origin){
window.top.$("#idxzy").html(img_block);
}
如果我将console.log()放在window.top.location上,也是
。 它显示如下 (原产地相同)
答案 0 :(得分:3)
使用location.hostname
:
if (location.hostname == "mydomain.com") {
window.top.$("#idxzy").html(img_block);
}
答案 1 :(得分:1)
您必须使用Window.postMessage()在iframe和父窗口之间进行通信。
Here you can find more info on that
您也可以尝试catch以防止控制台错误
try {
if (location.hostname == "mydomain.com") {
window.top.$("#idxzy").html(img_block);
}
}
catch(err) {
// Make sure you catch the exception thrown because is blocked by cross domain reference => then do
}