怎么获取 iframe转跳的网址

有什么办法能获取 iframe内点击连接转跳后的地址??
是用js或者直接用jquery 获取iframe转跳后的地址再显示在网页元素中

如果是同域名的网址,可以通过JS来读取:

var url = window.frames[0].location.href;


如果是跨域的,由于安全原因,你只能获取你原来设置的url:

var url = $('iframe').attr('src');

如果iframe里面的地址跳转了,这个是不会跟着变的,也就是说,你是无法获取变化后的地址的。

追问

那跨域是不是就完全木有办法了?

追答

是的。原则上,浏览器也不应该让这种不安全的操作出现(如果这种操作是允许的,很多网址的用户数据都要被盗取了)。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-26

使用其它的浏览器也有相同或相似的功能。

追问

忘了说。。是用js或者直接用jquery 获取iframe转跳后的地址再显示在网页元素中。。

追答

使用jquery :

html :

Jquery code:
$('#iframe ').attr('属性名') //返回的结果是:属性值

是这个意思吗?

追问

attr只能获取到我页面中原先设置的地址,iframe里面转跳过后就拿不到最新的地址了。。。不知道这个有没有什么办法。

我想要的效果是这样的:我自己做了一个页面,里面iframe包含某个网站登陆页面,原页面登陆之后,网址中有一串登陆后的token码,我想我的页面能在iframe登陆转跳后获取他地址中的token显示在我的页面上

ajax 代替post过去貌似也不能拿到新地址的吧?

追答

只要你的标签还在,就一定可以获取。不过可能你遇到的是其它我不了解的情况。

追问

就是这一段,太长发不出。。iframe里面的页面是一个登陆页面,正常登陆之后地址会改变,但是attr获取的地址是图片中本来就指定的地址而不是登陆后的地址

第2个回答  2014-07-27
跨域是不能操纵Iframe的,所以获取不了Iframe中的转跳地址。但是iframe中的子页面可以操纵父页面,用parent就行了。不知道对方准不准你修改它的页面,如果允许,你可以在子页面写个js把地址传到你的页面来。如果不行,还有个死办法,用正则表达式,把你的iframe的所有元素提取出来,找到form标签内部的action地址。追问

跨域。那是别人的登陆页面,登陆后有信息在地址上,action地址没用。。看来是没办法了

第3个回答  2014-07-26
如果你能控制iframe的页面,让它的js告诉外面的最好,其他办法是,如果页面不跨域,可以通过本页面js进入iframe的js获得

追问吧!少年追问

我来追问了。。跨域的。我自己的页面调用别人的登陆页面,具体看看我跟另一位大神的问题。。