首页 新闻 搜索 专区 学院

紧急求救:如何从主页面用js操控iframe页面的内容

0
悬赏园豆:100 [已解决问题] 解决于 2009-04-25 13:30

困惑了很久,不得不求助,遇到跨域的安全问题了。问题解决,马上撤下首页

 

想达到的效果是在主页面上操控iframe引进来页面中的元素(假设为b页面),并且b页面不能控制,小例子:

 

<html>
<head>
<title>a页面</title>
<script language="javascript">
function test(){
var iframeDoc=document.getElementById("ifm").contentWindow.document;
    
var doma= iframeDoc.getElementsByTagName("A");
    
for(var i=0;i<doma.length;i++){
        
if(doma[i].innerHTML=="新闻"){
            doma[i].style.display
="none";
        }
    }
}
</script>
</head>
<body onload="test()">
<iframe src="http://www.baidu.com/" id="ifm" width="100%" height="100%"></iframe>
</body>
</html>

 

 比 如说我用iframe引入百度的页面,然后将百度页面上超链接内容为“新闻”的内容过滤掉,可这段代码会因为浏览器安全问题报“没有权限”的错误。如果 iframe引入的非百度,而是我本地的一个页面,那就可以做到控制iframe引入页面的效果,可现在遇到一种情况,就是iframe页面内容是非本站 的,所以控制会报错,求救各位大侠帮忙想想解决方案。

 

 

搜了很多资料,找到的最好解决方法就是在本地服务器上写一个代理,然后引用代理,从代理中把请求在发送到目标服务器,从而达到同样效果,可这样就麻烦了,有没有更好的方案。

Dirain的主页 Dirain | 初学一级 | 园豆:80
提问于:2009-04-24 11:11
< >
分享
最佳答案
0

1.做一个代理页,做本地跳转用。

2.用一些支持异域的ajax框架,比如extjs?好像是支持的。

3.引用别人东西并修改,是不道德的,请尊重原创与原版。

不要迷恋哥,哥只是个传说 | 菜鸟二级 |园豆:490 | 2009-04-24 21:30
其他回答(4)
0

不如用VB+IE control作一个独立的程序,这样页面上的一切都尽在掌握了.
最近我正在考虑做一个自己的浏览器,现成的都不能完全满足我的要求.看了看IE control开发的一些文章,还不是很难入门.介绍几个网址你看看吧,如果你想采取这个方式的话.
http://blog.sina.com.cn/s/blog_49ab66a5010008wh.html
http://blog.sina.com.cn/s/blog_49ab66a5010008wi.html~type=v5_one&label=rela_nextarticle

C#弹夹 | 园豆:200 (初学一级) | 2009-04-24 11:30
0

如果引用不同域的话就会发生这个问题,你索性ajax请求,把它的页面出来

James.Ying | 园豆:1472 (小虾三级) | 2009-04-24 12:07
0

你要实现这个效果的话.可以考虑将它的页面抓下开,就是自己用的着的信息。

用到正则表达式。

邢少 | 园豆:10926 (专家六级) | 2009-04-24 13:30
0

框架里直接引用页的确不能更改,为只读,使用页面抓取也不失为一种解决办法。

MartinGao | 园豆:663 (小虾三级) | 2009-04-24 18:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册