zoukankan      html  css  js  c++  java
  • 坑爹的IE8

    1.不能用trim(),要用$.trim()
       var aa = $("#id").val().trim()  这样素不行的,要变成这样Jquery的方式 var aa = $.trim($("#id").val()) 
      还有个迂回的方式自己来实现
       参照:http://hi.baidu.com/yuiezt/item/756d0f4ec4d2640ec11613f9

    2.使用<marquee>,当一轮走过后,总要有一段空白的才会走下一轮。当里面的内容超过屏幕宽度太多时,这种状况就更加明显了。
      
    为此,改用每隔一段时间移动位置来实现。
       发现当speed设成1时,IE8变得非常局促,一下快一下慢,这是为咩啊,我摔,别的IE9,Chrome都飞快地说。
    <script>
    var speed=100;
    var tab=document.getElementById("main");
    var tab1=document.getElementById("content1");
    var tab2=document.getElementById("content2");
    tab2.innerHTML=tab1.innerHTML;
    function Marquee(){
    if(tab2.offsetWidth-tab.scrollLeft<=0)
    tab.scrollLeft=tab.scrollLeft-tab1.offsetWidth*10
    else{
    tab.scrollLeft=tab.scrollLeft+10;
    }
    }
    var MyMar=setInterval(Marquee,speed);
    tab.onmouseover=function() {clearInterval(MyMar)};
    tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};
    </script>

      
    3.慎用"dispaly:none"/"display:block",采用"visiblity:hidden"/"visibility:show",最好用Jquery的show()和hide()来控制
      "visiblity:hidden"会留出个位置给隐藏元素,这样当切换元素可见不可见的时候,画面位置不会改变。
      而"display:none"在其它浏览器也没事,但碰上IE8,就会在页面上留下个残影,IE8,你的反应要不要这么慢阿!

    4.当DropDown List子项值的长度超过预留位置时,IE8挡住了过长的部分,不方便选择

    补救方法,在option加上title属性,使得鼠标放上面可以显示整个文本值

    test : <select name="Select1" value="0" style="250px">
    <option selected="true" value="0">Please choose a value</option>
    <option value="1" title='aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbaacccccccccccc'>aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbaacccccccccccc</option>
    <option value="2" title='aaaaaaaaaabbbbbbbbbbbbbbbbbbbcccccddddddd'>aaaaaaaaaabbbbbbbbbbbbbbbbbbbcccccddddddd</option>
    </select>
    


    效果:

     5.Jquery在做Browser support时,动态给地里面加入些元素测试,结果某些语句通不过
    这个是ie的问题,它不支持修改tr或table的innerHTML属性,只允许修改td的innerHTML,真是奇葩呀
    innerHTML未知的运行错误
    http://www.cnblogs.com/orc/archive/2008/06/18/1224322.html

    jquery-1.8.3.js
    div = document.createElement("div");

    div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";

    jquery.js
    div.innerHTML = "<div style='4px;'></div>";

    div.innerHTML = "<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";

    解决办法,使用低版本的jQuery,比如jquery-1.6.4

  • 相关阅读:
    遍历一个枚举类型
    ASP.NET:C#中时间格式的转换
    DataAdapter去批量更新数据的FAQ
    .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版) (C# DIY HttpWebClient) 收藏
    如何使数据库中取出的数据保持原有格式
    如何获取控制台应用程序自己的文件名
    2008将倒掉一大部分的工厂和贸易公司
    组六对半分组组合投资方案(36789)
    重又归孑然一身
    善于总结
  • 原文地址:https://www.cnblogs.com/sui84/p/6777208.html
Copyright © 2011-2022 走看看