關於瀏覽器的bug和解決方案(非hack法)

  1. <p>test1<span>test2</span></p>正則表達式

       設置span右浮動,在IE6/7下span會掉到p的下一行的最右邊。chrome

       解決方案:用絕對定位position:absolute代替。數組

  2. <div>這裏聽任何內容</div>測試

       設置div的height爲0,在IE6下無效。動畫

       解決方案:無需強調動畫效果能夠用display:none/block代替。spa

  3. <form><button id="test">test</button></form>code

        估計不少同窗爲了作個簡單測試會像上面這樣寫,像這樣寫,用js給button綁定點擊事件後,在chrome、IE8/9/10/11下,點擊會出現事件閃一下而後沒反應,而下IE6/7下倒是正常的。這時候會發現閃一下是由於執行了表單默認的提交動做(注意看URL後面多出來一個問號就秒懂了)而沒有執行自行綁定的onclick事件。
    orm

         解決方案:使用<form><input type="button" value="test" id="test"  /></form>或者在onclick事件中return false;對象

  4. IE6/7/8不支持getElementsByClassName方法,因此須要本身寫。事件

        解決方案:如下兩種寫法提供參考。

//第一種
function getElementsByClassName(className,tag){  
              //對tag進行過濾,取出全部tag對象
              var allTags = document.getElementsByTagName(tag);  
              var matchingElements = new Array();  
                
              //正則表達式  
              className = className.replace(/\-/g,"\\-");  
              var regex = new RegExp("(^|\\s)" +className+ "(\\s|$)");  
                
              var element;  
                
              //將取出的tag對象存入數組中。  
              for(var i = 0;i < allTags.length;i++){  
                  element = allTags[i];  
                  if(regex.test(element.className)){  
                      matchingElements.push(element);  
                      }  
                  }  
              return matchingElements;  
    }
    if (document.getElementsByClassName) {
		。。。
	}else{
		。。。
	};

//第二種,直接放在js最前面,後面則直接使用getElementsByClassName便可。 
if(!document.getElementsByClassName){
  document.getElementsByClassName = function(className, element){
    var children = (element || document).getElementsByTagName('*');
    var elements = new Array();
    for (var i=0; i<children.length; i++){
      var child = children[i];
      var classNames = child.className.split(' ');
      lassNames.length; j++){
        if (classNames[j] for (var j=0; j<c== className){ 
          elements.push(child);
          break;
        }
      }
    } 
    return elements;
  };
}
相關文章
相關標籤/搜索