热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

点击iframe里网页上的链接,iframe网页地址改变了,怎样才能得到这个新地址?

实际上我是想在iframe里做一个Oauth的登陆,登陆后会有一个http的回调地址,回调地址里有我要的参数,我想要获得它们该怎么做?比如我在iframe里打开csdn主页,然后来到本版,地址栏就
实际上我是想在iframe里做一个Oauth的登陆,登陆后会有一个http的回调地址,回调地址里有我要的参数,我想要获得它们该怎么做?
比如我在iframe里打开csdn主页,然后来到本版,地址栏就是http://bbs.csdn.net/topics/new?forum_id=Javascript,我想要获得forum_id这个参数该怎么做?
如果我要获取url再用正则做的话,如何获得iframe里页面的实际URL?不是父页面的,是iframe中页面的url。
现在查到通过src属性只能获取原始设置值,location.href什么的实测不能用,还有获取要是完整路径或者说绝对路径,“?”之后的参数也要能获得。
______________________________________________________________________________________________
3楼我写错了,应该是document.getElementById(iframe_id).contentWindow.location.href

9 个解决方案

#1


哪位高手来看看吧

#2


自己稍稍顶一下

#3


还是没人答啊,太简单了不屑于答么... ...好寒心啊,自问自答算了.......
网上资料都是两端都能更改的,比如开两个iframe,这两个iframe里的html可以通信,这也是个跨域问题,但是这个问题由于不能改写服务端页面,也就是随便拿个页面都要适用,比如说我在iframe里开个百度首页,所以比较麻烦。
问题应该是在跨域上,document.getElementById(iframe_id).location.href可以读到完整url,但是由于跨域在浏览器里是跑不动的,用Phonegap做开发就没问题因为它是不管跨域的。所以在浏览器上还是没解决。
拿到后用正则或string的函数可以解决取参问题

#4


document.getElementById(iframe_id).src不行吗?

#5


不行,那个只能取到初始值,一旦点击了iframe里的链接url变化了,是取不到新的地址的

#6


在父页面,写一个function,接受iframe的调用
然后在iframe页面,例如oauth页面,执行一下父页面的这个function,把当前url传给父窗口。

父页面:





iframe页面1

go


iframe页面2


#7


楼主,这个问题解决了吗

#8


如果没跨域,可以通过 iframe.contentWindow.location.href获得,这个肯定是当前的,
跨域了,只能通过 iframe.src,只能取到初始值

#9


iframe有个加载完成的事件,在这个事件里面写src="xxx",



var iframe = document.getElementById("if_main");  
    iframe. onload = iframe. onreadystatechange = function(){
     if (!iframe.readyState || iframe.readyState == "complete") {  
    
     //alert('加载完成  ');
        }
    }; 

推荐阅读
author-avatar
家具销售_903
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有