我们有一套广告系统,这几天发现了一个情况,就是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")
%>
原理大家一看就该明白,利用第三页重新定向一下就行了.再次再次对微软的这次升级感到很纳闷,既然做也不做全了.这么容易就被突破限制也太那个了......