了解 Iframe 中的跨域问题

IT技术 javascript html iframe
2021-02-27 20:43:40

这个问题可能看起来很愚蠢,但为了清楚起见,我需要理解这一点。

根据我的理解,跨域问题是当包含 IFRAME 的网页的域与在 IFRAME 中打开的网页的域不同。

按照这个逻辑,任何东西都不应该在 IFRAME 中打开。

当我在网页“top:9700”的 IFRAME 中嵌入网页“bottom:10700”时,出现错误。我无法在 IFRAME 中看到内容。错误是Access denied in accessing property 'constructor'

访问构造函数 (_1.contructor) 时出现错误

isc.A.Function=function isc_isA_Function(_1){
  if(_1==null) return false;
  if(isc.Browser.isIE&&typeof _1==this.$a7) return true;
  var _2=_1.constructor;
  if(_2&&_2.$k!=null){
    if(_2.$k!=1)return false;
    if(_2===Function)return true
  }

当在包含在顶部的 iframe 中打开底部的主页时,将运行此脚本。

有什么办法,我可以做这个工作。我的意思是我可以将两个域设置为相同。我无权访问远程站点的脚本。

在跨域场景重新绘制后调整框架的大小。如果没有,那么肯定是远程站点正在尝试访问 IFRAME 元素..我该如何调试?

2个回答

跨域问题是关于 iframe 之间的通信。您始终可以嵌入任何 iframe,但是,如果域不同,iframe 无法相互交互,例如执行 JS、修改 DOM 等。

HTML5 提供了重新启用跨域 iframe 交互的特定功能的sandbox属性小心,这可能很危险。

我想出了问题..问题出在远程站点的脚本中。它试图在框架内对齐自己。为此,它正在访问框架包含页面的元素...感谢大家帮助我
2021-04-18 20:43:40
不。您可以在最顶部的窗口中调整 DOM 元素的大小。这与任何形式的交流都无关。
2021-05-04 20:43:40
如果我在显示后调整框架大小(通过代码),是否被视为跨域通信?
2021-05-12 20:43:40

在 abc.com 上托管的 iframe 中加载页面 xyz.com 是正常行为。但是,您不能通过父 abc.com 的代码更改任何内容或访问其内容。

希望这有帮助。

感谢回复。我现在明白了。就我而言,我不想访问任何框架的内容。所以,也许是远程脚本试图访问我的 IFRAME 的包含页面。我如何调试、访问什么并修复它?
2021-04-21 20:43:40