js控制iframe弹出窗口

js控制iframe弹出窗口

问题描述:

有这样一种情况:
我在iframe里面嵌了一个网页(这个网页可能是来自网络)
如果网页里面含有像

function changelocation(){ parent.location.href="b.htm"; }


跳转

这样的代码,那页面跳转之后就会覆盖掉了原来的iframe页,我想让这个跳转之后的
页面在iframe里面显示。但是只能是自己另外建一个js文件往这个网页上注入,
因为这个网页不一定是我写的,可能会是一个网络资源。
求解决办法。附件是需求用的一个例子

关于方法一,

亲,你所谓的其他资源肯定是跨域访问,而且连基域应该都是不同的

[code="java"]
解决办法是,你可以在java端生成一个代理

就是通过java发送httprequest去把页面拿来,在返回给iframe

这样你就可以操作该iframe的对象了

但似乎还是没法解决ie问题
[/code]

[code="java"]
同理,方法也必须使用这种代理方式假如跨域访问情况存在,因为你要访问iframe的window.location 属性
[/code]

亲,很好玩的问题

想到两种思路,分享一下,同时也很想知道你现在的解决办法

[b]第一种:[/b]

[code="java"]
在父窗口(当子窗口加载完成)直接把 子窗口的parent对象赋给自己

e.g iframe.contentWindow.parent=iframe.contentWindow

在ff下测试成功,但后来发现parent在ie下是只读属性

所以。。。
[/code]

[b]
另外一种,比较变态了[/b]

[code="java"]
假设a是父页面,c是目标页(iframe)

假如我们加一层iframe b 变成 a->b->c

当c调用parent的时候,b地址变了,在a看来,还是同一frame

这是,需要有个监听器,监听b的地址,假如它的地址和我们初始化给他的不同,被c改变

那么,删除b,在创建个空b,再用b现在的地址创建c

就是说,始终保持,c(目标页)和父页的关系式 a->b->c
[/code]