文章标签 ‘bug’
百度搞了一个分享平台,好吧,试用一下,发现分享成功,但各平台下跳转回来的地址存在IE6下参数获取错误的问题。
问题重现(新浪微博为例):
分享平台获取的地址一般为http://www.domain.com/test.asp?id=100#0-tsina-111111-111111-de70028302b856c997bc35861eb52ece,分享平台都有自己的短网址,一般为http://t.cn/AbCdEf,点击的时候做了一次跳转到分享平台获取的地址。但是由于添加了#号后面的内容,在IE6浏览器下Request得到的ID值严重不正确,居然包含#号后面的所有字符。
问题简化:
1.asp
<a href="2.asp">测试</a>
2.asp
Response.Redirect("3.asp?ID=14#efefef")
3.asp
Response.Write(Request("ID"))
IE6下,单击1.asp里的链接 或 直接访问2.asp,输出的值为:14#efefef
解决问题:
1. 过滤掉#及后面的所有字符
2. 添加空的参数,例如3.asp?ID=14&TP=#efefef
追究原由:
测试了FF7,FF8,FF(8),Chrome(15),Safari(5.1)均未发现问题。查询网络发现 这篇 文章和我碰到了同样的问题,和几个同事讨论均认为有可能是IE6在跳转时发生的问题,该问题已经提交到微软在线论坛等待MVP反馈。如有描述错误之处,请指教。
PS:
12.16 MVP回复可能为IE6的某BUG,并提供同样问题的链接 Internet Explorer 6 and redirected anchor links。
这个BUG只出现在IE6下,今天测试页面的时候发现并找到的解决方案:
BUG症状:
IE6边框时断时续,时有时无,其他流行浏览器均正常显示
BUG条件:
1px边框,border:1px solid #ddd;子元素下有浮动;最后已加清除浮动附加div class=”clear”
BUG解决方案:
父元素上zoom:1或者height:100%
另外一个边框BUG:
IE bug: 1像素的dotted/dashed边框 涉及浏览器为IE6/IE7
今天看Google Reader的时候,发现163 UED上的一篇 IE6 bug: 消失的绝对定位元素 ,和我昨天碰到问题一样的,不同的是,他们至少找到了解决办法,而我却是退而求其次了!可能这就是差距…
原文:
<style>
*{ padding:0; margin:0;}
.content{width:600px;}
.abs{position:absolute; left:0; top:0; width:600px; height:120px; background:#1f3a87; }
.main{float:left; width:300px; height:200px; background:#f3f3f3; }
.sub{float:left;width:300px; height:200px; background:#bc2931;}
</style>
<div class=”content”>
<div class=”abs”>
abs
</div><div class=”main”>
main
</div>
<div class=”sub”>
sub
</div>
</div>
以上代码在IE6下浏览会发现,绝对定位元素不见了。
产生原因不明,当满足以下条件之一可解决:
1、main + sub + 2 < content(各元素的宽度);
2、在main元素之前加一个空的<div></div>,如…<div></div><div class=”main”>…;
3、给abs元素再嵌套一个div元素,如<div><div class=”abs”>abs</div></div>
该Bug只在IE8非兼容模式下会存在,目前已经找到多篇关于此Bug的介绍,具体见文末!
版本号: jquery1.3.2
浏览器: IE8
问 题: toggle()存在hide后无法show的问题
代 码:
<script type="text/javascript">
$(document).ready(function(){
$(‘#tbl td’).bind(‘click’,function(){
$(this).parent().next().toggle();
})
})
</script><table id="tbl">
<tr><td>LINE1</td></tr>
<tr><td>LINE2</td></tr>
<tr><td>LINE3</td></tr>
<tr><td>LINE4</td></tr>
</table>
描 述: 当单击LINE1时,LINE2会隐藏,但再次单击时,却无法正常显示了!
修 复1: 利用1.3.2最新加入的方法toggle(switch)
<script type="text/javascript">
$(document).ready(function(){
$(‘#tbl td’).bind(‘click’,function(){
$(this).parent().next().toggle($(this).parent().next().css(‘display’)==’none’);
})
})
</script><table id="tbl">
<tr><td>LINE1</td></tr>
<tr><td>LINE2</td></tr>
<tr><td>LINE3</td></tr>
<tr><td>LINE4</td></tr>
</table>
修 复2: 利用toggleClass切换样式
<style>
.hidden{ display:none; }
</style>
<script type="text/javascript">
$(document).ready(function(){
$(‘#tbl td’).bind(‘click’,function(){
$(this).parent().next().toggleClass(‘hidden’);
})
})
</script><table id="tbl">
<tr><td>LINE1</td></tr>
<tr><td>LINE2</td></tr>
<tr><td>LINE3</td></tr>
<tr><td>LINE4</td></tr>
</table>
代码比较少,如需要测试,请自行Copy Code, and Import 相关版本的jquery!
相关介绍:
