了解Iframe中的跨域问题

时间:2013-01-07 14:11:41

标签: javascript html iframe

这个问题看似愚蠢但我需要明白这一点。

根据我的理解,跨域问题是当包含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 个答案:

答案 0 :(得分:8)

跨域问题涉及iframe之间的通信。您始终可以嵌入任何iframe,但如果域名不同,则iframe不能相互交互,例如执行JS,修改DOM等。

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

答案 1 :(得分:3)

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

希望这会有所帮助。