2012-11-27 21 views
1

是否有人知道我们如何访问iFrame信息(右键单击浏览器中的iFrame - >此框架 - >查看框架信息)如何通过javascript获取iFrame信息(引用url)?

主要我想获取推荐网址。

我能够contentDocument.location.href

获得地址,但我不能让其他属性(类型,渲染模式,引用URL,...)。

顺便说一下,document.referrer不是我正在寻找的东西。

请尽快帮到

回答

1

主页和iframe是否位于同一个域?由于“跨帧通信”在所有现代浏览器中受到严格限制,我认为没有办法完成这一点。

+0

不,他们是在不同的域 – user1855017

0

我没有写这一点,不记得它是从哪里来的,但它的死非常有用,这是一个片段,我始终保持周围:

 function parseUri(str) { 
      var o = parseUri.options, 
       m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), 
       uri = {}, 
       i = 14; 

      while (i--) uri[o.key[i]] = m[i] || ""; 

      uri[o.q.name] = {}; 
      uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { 
       if ($1) uri[o.q.name][$1] = $2; 
      }); 

      return uri; 
     }; 

     parseUri.options = { 
      strictMode: false, 
      key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], 
      q: { 
       name: "queryKey", 
       parser: /(?:^|&)([^&=]*)=?([^&]*)/g 
      }, 
      parser: { 
       strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)[email protected])?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, 
       loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)[email protected])?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ 
      } 
     }; 

然后使用它是这样的:

 parseUri(document.referrer).host //<-- gets host name 
相关问题