饿郎每天都在为肚子奔波

位置: 首页 » 工作坊 » IE升级后iframe不能包含当前页了.  [阅读繁体版本]

IE升级后iframe不能包含当前页了.

我们有一套广告系统,这几天发现了一个情况,就是URL返回的HTML中有iframe指向的还是此URL的时候这个iframe就不工作了.(只出现在IE中,firefox正常)

举例如下:

比如你访问 http://www.jrgz2008.com/test/iframe.asp

返回的HTML里面有 <iframe src="http://www.jrgz2008.com/test/iframe.asp"></iframe>

那么你会发现这个iframe并没有工作.

也许这时你会说这不是死循环吗?表面上看的确实死循环.当有时候的确会用到.比如,这个地址第一次访问的时候输出 iframe 第二次访问就不输出 iframe 了.虽然这种应用很少见,但的确很多时候是有这种应用的.再次为微软的这次升级感到很纳闷.估计是为了优化链接和性能做了这种限制吧.

细细的做了一个实验以后发现.比如你返回的是 <iframe src="http://www.jrgz2008.com/test/IFRAME.asp"></iframe>那就能正常工作.就是说.你把后面的部分随意的变换一下大小写就行.(有的服务器是区分大小写的,这种方法就不行,还有.改变域名的大小写也不行)

目前没有什么好的解决方法.只想到了一个.目前测试有效

修改<iframe src="http://www.jrgz2008.com/test/iframe.asp"></iframe>

为 <iframe src="tourl.asp?url=<%=server.urlencode("http://www.jrgz2008.com/test/iframe.asp")%>"></iframe>

tourl.asp的代码是:

<%
response.Redirect  Request.QueryString("url")
%>

原理大家一看就该明白,利用第三页重新定向一下就行了.再次再次对微软的这次升级感到很纳闷,既然做也不做全了.这么容易就被突破限制也太那个了......

 

发表评论:

最近发表

最新评论及回复

Copyright 2008 www.jrgz2008.com All Rights Reserved. Powered By Z-Blog 1.8 Spirit Build 80708  Skin By Stephen