日期:2014-05-16  浏览次数:20246 次

寻找 javascript不能处理跨域的iframe问题的可代替解决方法

今天看了javascript的书,突然有点想法,javascript处理iframe中网页,一开始,遇到引用iframe问题,如:a.htm里有iframe为subpage.htm,在a.htm引用iframe里的文档(即:subpage.htm)。方法如下:
1.

var?targetDoc?=?window.parent.frames['targetIframe'].document;


2.

var?targetDoc?=?document.getElementById('targetIframe').contentWindow.document;


解决引用问题后,src为其它网页时双拒绝访问,郁闷,baidu下才得知是跨域不用被javascript处理。郁闷,想法不能实现了。

我想要的效果是:自己的网页的一个区可以显示其它网页(这个很重要,显示效果就像真的在浏览器里,被显示的网页我称:subpage),然后javascript处理下subpage,使得实现想要的效果,比如:点subpage里链接时alert()出一些内容,等。

现在我解决不了的就是:?自己的网页的一个区可以显示其它网页(效果与单独访问一样)。

iframe可以解决此问题,但会引来javascript不能处理它。

各位,给点建议。谢谢!

1 楼 fyting 2007-09-24  
搜索下先,跨域有很多种方式。
比如服务器端的代理,动态javascript生成,有个精华帖,仔细找找。
你要实现的显示其他网页内容,也可以用xmlhttp读取过来再显示。这样就可以由你自己控制subpage里的事件,如果直接采用iframe,就需要通过location.hash的方式在多个iframe之间通信,也很麻烦.
2 楼 hax 2007-09-25  
楼主难道想做fishing?

如果只是自己玩玩,可以改变IE的安全设置允许跨域。
3 楼 lonelyblue 2007-09-25  
用一个servlet当做代理,在servlet中模拟get或者post请求与另一个域通信。
4 楼 chenlb 2007-09-25  
昨天想到用jsp代理读取别的网页,思路跟lonelyblue一样,

但还没有去实现

这样也会引来一个问题,别的网页内的链接资源(如:css,img)都变成自己站下的路径了,这样一来servlet或jsp还要正理网页内容.
5 楼 chenlb 2007-09-25  
hax 写道
楼主难道想做fishing?

如果只是自己玩玩,可以改变IE的安全设置允许跨域。


有个师兄叫我帮他做,只是没时间参与到他们项目了,看了javascipt的书,突然想玩下.
6 楼 xstubborn 2007-10-25  
我和楼主也遇到了相同的问题..
最近突然玩个WEB-GAME想写个后台挂机的页面..
一动手才知道跨域了...
找了很多资料都没合用的..

Maxthon下有个叫viewpage的插件,专门分析网页的,它的跨域是咋实现的呢?
7 楼 birdjavaeye 2007-10-25  
安装的插件和直接加载的网页对应不同的安全策略,所以插件能够跨域
8 楼 xstubborn 2007-10-29  
en~已经解决了
如果是终端(final)的跨域的话,最低成本的办法就是maxthon的插件..
直接提供获取目标页面的windows或document的API
9 楼 rainchen 2007-10-29  
xstubborn 写道
我和楼主也遇到了相同的问题..
最近突然玩个WEB-GAME想写个后台挂机的页面..
一动手才知道跨域了...
找了很多资料都没合用的..

Maxthon下有个叫viewpage的插件,专门分析网页的,它的跨域是咋实现的呢?


它那个是用JS写的,相当于在当前页执行JS,或者直观点来说,效果等同于,你打开任意网站,然后在地址栏输入javascript:jscode 一样的意思,所以没有跨不跨域之说。