9

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

根据我的理解,跨域问题是当包含 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 元素。我该如何调试呢?

4

2 回答 2

9

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

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

于 2013-01-07T14:26:04.100 回答
3

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

希望这有帮助。

于 2013-01-07T14:25:50.857 回答