zoukankan      html  css  js  c++  java
  • ie6 select不兼容处理(转)

     

    jQuery针峰相对IE6

    以下是个人在使用jQuery在开发时,与ie6有关的bug

    1:关于select下拉框的动态赋值并选中其中某一项

    在ie6中,如果你动态给select赋值并选中时,如下代码:

    $('#selectId').empty().html('<option value="001">collonn</option><option value="002">joanna</option>').val('002')

    alert('following');

    这样写,最终的结果是:

    (1)会选中valu='002'的选项,但ie6会报错(浏览器左下角会出现一个黄色报警)

    (2)alert('following')这一行是不会执行的,并且,这一行以下的所有js都不会执行

    解决方法:

    应该这样写:

    $('#selectId').empty().html('<option value="001">collonn</option><option value="002">joanna</option>');

    setTimeout(function(){

       $('#selectId').val('002');

    },10);

    问题解决,但不知道根本原因,可能是ie6还没有来得及给select做必要的处理吧

    2:关于table的显示与隐藏样式

    如果隐藏就用:$('#table').css('display','none');

    如果显示就用:$('#table').css('display',''); 为空白就行

    如果用('display','block'),IE7=6正常,但firefox有问题。

    如果用('display','table')或着('display','table-row')或着('display','table-cell'),IE6就会有问题,firefox正常

    IE6 Bug之select动态赋值

    06

    问题:使用ie测试时发现一处脚本报错,经过alert排查出引发问题的代码。此代码在其他浏览器下正常,但是ie6下报错。

    排查:与技术沟通确认代码功能是将select最新服务器设为选中状态。服务器列表是动态生成的。

    解决直接上代码:

            if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style) {
                window.setTimeout(function(){//ie6需要稍微延迟  
                    groupSelect.val(max_groupId);  
                }, 0);  
            }else{
                groupSelect.val(max_groupId)
            }

    原因:因为在往select中动态添加option时,浏览器执行javascript设置select的属性的时候浏览器可能还没将它们渲染到页面中(ie6),因此使用setTimeout可以使浏览器渲染线程先将元素渲染到页面中区,再使用javascript线程执行改变它们属性的操作。

  • 相关阅读:
    JVM堆内存设置和测试
    转:面试题:“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”
    JVM--标记-清除算法Mark-Sweep
    JVM 垃圾回收器工作原理及使用实例介绍
    BSGS算法(大小步算法)
    Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4)
    Codeforces Round #605 (Div. 3)
    POJ 2516Minimum Cost(最小费用流+特判)
    POJ 3155Hard Life(最大密度子图)
    洛谷P2463 [SDOI2008]Sandy的卡片(后缀数组SA + 差分 + 二分答案)
  • 原文地址:https://www.cnblogs.com/ivan0626/p/2791475.html
Copyright © 2011-2022 走看看