亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript的常見兼容問題及相關解決方法(chrome/IE/firefox)

2019-11-20 21:20:30
字體:
來源:轉載
供稿:網友

首先這里聲明一下,關于我測試瀏覽器的版本是chrome15.0.874.121 Firefox 8.01 IE9 IETester

下面的代碼關于聲明

1:獲得滾動條的情況

復制代碼 代碼如下:

function getScroll(){
        var t, l, w, h;

        if (document.documentElement && document.documentElement.scrollTop) {
            t = document.documentElement.scrollTop;//滾動條的頂端
            l = document.documentElement.scrollLeft;//滾動條的左端
            w = document.documentElement.scrollWidth;//滾動條的寬度,也就是頁面的寬度
            h = document.documentElement.scrollHeight;//滾動條的高度
        }
        else
            if (document.body) {
                t = document.body.scrollTop;
                l = document.body.scrollLeft;
                w = document.body.scrollWidth;
                h = document.body.scrollHeight;
            }
        return {
            t: t,
            l: l,
            w: w,
            h: h
        };
    }

2:獲得視圖瀏覽器的寬度高度
復制代碼 代碼如下:

  function getPageWidth(){
        var pageWidth = window.innerWidth;
        if (typeof pageWindth != "number") {
            if (document.compatMode == "CSS1Compat") {
                pageWidth = document.documentElement.clientWidth;
            }
            else {
                pageWidth = document.body.clientWidth;
            }
        }
        return pageWidth;
    }

    function getPageHeight(){
        var pageHeight = window.innerHeight;
        if (typeof pageWindth != "number") {
            if (document.compatMode == "CSS1Compat") {
                pageHeight = document.documentElement.clientHeight;
            }
            else {
                pageHeight = document.body.clientHeight;
            }
        }
        return pageHeight;
    }

3:獲得當前瀏覽器型號 名字
復制代碼 代碼如下:

function(){
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        var s;
        (s = ua.match(/msie ([/d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox//([/d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome//([/d.]+)/)) ? Sys.chrome = s[1] : (s = ua.match(/opera.([/d.]+)/)) ? Sys.opera = s[1] : (s = ua.match(/version//([/d.]+).*safari/)) ? Sys.safari = s[1] : 0;

        if (Sys.ie != null) {
            return ("IE:" + Sys.ie);//判斷IE瀏覽器及版本號
        }
        if (Sys.firefox != null) {
            return ("firefox:" + Sys.firefox);//判斷firefox瀏覽器及版本號
        }
        if (Sys.chrome != null) {
            return ("chrome:" + Sys.chrome);//判斷chrome瀏覽器及版本號
        }
        if (Sys.opera != null) {
            return ("opera:" + Sys.opera);//判斷opera瀏覽器及版本號
        }
        if (Sys.safari != null) {
            return ("safari:" + Sys.safari);//判斷safari瀏覽器及版本號
        }
    }

4:事件監聽
復制代碼 代碼如下:

function(element, type, handler){
        if (element.addEventListener) {
            element.addEventListener(type, handler, false);
        }
        else
            if (element.attachEvent) {
                element.attachEvent("on" + type, handler);
            }
            else {
                element["on" + type] = handler;
            }
    }

5:事件移除
復制代碼 代碼如下:

function(element, type, handler){
        if (element.removeEventListener) {
            element.removeEventListener(type, handler, false);
        }
        else
            if (element.detachEvent) {
                element.detachEvent("on" + type, handler);
            }
            else {
                element["on" + type] = null;
            }
    }

6:獲得event,Firefox事件不斷派發的時候,第一次事件會出現問題。
復制代碼 代碼如下:

function(event){

        event = (event ? event : window.event);
        if (event == null) {
            var $E = function(){
                var c = $E.caller;
                while (c.caller)
                    c = c.caller;
                return c.arguments[0]
            };
            __defineGetter__("event", $E);
        }
        return event;
    }

7:阻止默認事件
復制代碼 代碼如下:

function(event){
        if (event.preventDefault) {
            event.preventDefault();
        }
        else {
            event.returnValue = false;
        }
    }

8:不繼續傳播事件
復制代碼 代碼如下:

function(event){
        if (event.stopPropagation) {
            event.stopPropagation();
        }
        else {
            event.cancelBubble = true;
        }
    }

9:獲得event的target
復制代碼 代碼如下:

function(event){
        return event.target || event.srcElement;
    }

10:documen.doctype支持不一致

E:如果存在文檔類型說明,會將其錯誤的解釋為一個注釋并把它當做Comment節點,document.doctype的值始終是null。

Firefox:如果存在文檔類型說明,則將其作為文檔的第一個子節點,document.doctype是一個DocumentType節點,也可以通過firstChild或者childNodes[0]訪問同一個節點。

Safari、Chrome、Opera:如果存在文檔類型說明,則將其作為解釋,但不作為文檔的子節點,不會出現在childNodes中的。

11:查找元素
我有時候,我真搞不明白,IE總是在搞什么,總是想標新立異。如果系統不讓自帶瀏覽器的話,我敢說,IE的份額將會更少。

如果id和name一樣的話,他也將被返回

復制代碼 代碼如下:

<html>
    <head>
     <script defer>
      var item=document.getElementById("my");
   item.value="SECOND";

     </script>
    </head>
    <body>
     <input type="text" name="my" value="FIRST" >
    </body>
</html>

在IE中,結果變化了。

同樣是IE,Id大小寫不區分

復制代碼 代碼如下:

<html>
    <head>
     <script defer>
      var item=document.getElementById("MY");
   item.value="SECOND";

     </script>
    </head>
    <body>
     <input type="text" id="my" value="FIRST" >
    </body>
</html>

不好意思,他的結果又變化了。

12:如果是自定義屬性的話,item.myattributs在非IE瀏覽器的情況下,是無法得出正確結果的。

復制代碼 代碼如下:

function(item,myatt){
  return item.attributes[myatt].value;
 }

同樣的話,設置屬性應該知道怎么辦吧,就是賦值唄。
復制代碼 代碼如下:

function(item,myatt,value){
  item.attributes[myatt].value=value;
 }

13:元素的子節點個數
復制代碼 代碼如下:

 <ul id="myul">
   <li>first</li>
   <li>second</li>
   <li>third</li>
  </ul>

IE結果是3,其他瀏覽器是7。

Node之間的空白符,在其他瀏覽器是文本節點,結果就是7。如果變成這樣,

復制代碼 代碼如下:

<ul id="myul"><li>first</li><li>second</li><li>third</li></ul>

這樣大家的結果都是3了。
14:創立節點問題
復制代碼 代碼如下:

//動態添加Element,所有的瀏覽器都可以實現
var newnode=document.createElement("input");
newnode.type="button";
newnode.value="sixth";
//在IE中可以還這么實現
var newnode= document.createElement("<input type=/"button/">");

15:在屏蔽右鍵的時候,firefox與其他的不一樣,在oncontextmenu事件中。

16:還有動態添加style和script的時候,IE和其他的瀏覽器是不一樣的。具體查查。

17:對于DOM2和DOM3,情況更復雜了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠躁夜夜躁人人躁婷婷91| 色狠狠久久aa北条麻妃| 精品国产福利在线| 久久69精品久久久久久久电影好| 日韩电影中文字幕一区| 性日韩欧美在线视频| 色樱桃影院亚洲精品影院| 九九综合九九综合| 日本免费一区二区三区视频观看| 欧美在线中文字幕| 亚洲视频在线免费观看| 欧美一级黑人aaaaaaa做受| 成人激情免费在线| 精品女同一区二区三区在线播放| 久久久噜噜噜久噜久久| 欧美猛交ⅹxxx乱大交视频| 日本久久精品视频| 亚洲香蕉伊综合在人在线视看| 日韩av电影院| 久久国产精品影视| 国产精品成人aaaaa网站| 国产欧美婷婷中文| 久久精品国产v日韩v亚洲| 日韩大胆人体377p| 日韩在线国产精品| 国产一区二区三区毛片| 亚洲乱码一区av黑人高潮| 国产日产欧美a一级在线| 日韩高清a**址| 欧美专区在线播放| 日韩高清不卡av| 国产丝袜一区视频在线观看| 亚洲欧美日韩第一区| 欧美成人免费全部| 中文字幕av一区| 久久久久久久电影一区| 亚洲3p在线观看| 亚洲精品国产综合区久久久久久久| 欧美在线精品免播放器视频| 在线看国产精品| 色999日韩欧美国产| 欧美激情欧美狂野欧美精品| 成人免费视频网址| 日韩av最新在线| 国产亚洲精品高潮| 国产一区二区动漫| 久久精品国产2020观看福利| 国产拍精品一二三| 北条麻妃一区二区在线观看| 久热精品视频在线观看一区| 国产精品久久不能| 欧美电影在线观看完整版| 国产精品久久久久久av| 欧美激情在线观看| 欧美久久精品午夜青青大伊人| 欧美—级高清免费播放| 91亚洲精华国产精华| 九九热这里只有在线精品视| 欧美日韩国产成人高清视频| 欧美电影免费观看高清| 一区二区三区天堂av| 久久精品亚洲国产| 中文字幕国产日韩| 一区二区三区视频免费在线观看| 国产精品久久久久秋霞鲁丝| 丝袜亚洲欧美日韩综合| 日韩大胆人体377p| 欧美有码在线观看| 美日韩精品免费观看视频| 欧美中文在线观看国产| 国产亚洲成av人片在线观看桃| 欧美视频在线免费看| 91国产高清在线| 国产精品伦子伦免费视频| 国产日韩av在线播放| 欧美日韩在线第一页| 欧美日韩成人在线观看| 日韩高清有码在线| 亚洲自拍偷拍第一页| 欧美日韩免费看| 国产99久久久欧美黑人| 日韩电影中文字幕在线观看| 国产精品视频网| 亚洲国产精品va在线观看黑人| 精品性高朝久久久久久久| 成人免费在线视频网站| 欧美色视频日本高清在线观看| 成人中心免费视频| 亚洲美女在线看| 国产精品久久久久久久一区探花| 国产视频精品一区二区三区| 欧美最猛性xxxxx亚洲精品| 狠狠躁天天躁日日躁欧美| 丝袜美腿精品国产二区| 久热精品视频在线| 欧美老少做受xxxx高潮| 欧美亚洲日本黄色| 亚洲欧美日韩中文在线制服| 久久夜色精品国产亚洲aⅴ| 日韩av电影国产| 在线观看欧美www| 最近2019年好看中文字幕视频| 久久亚洲国产精品成人av秋霞| 亚洲成人久久网| 欧美激情一区二区三区久久久| 久久男人av资源网站| 8x海外华人永久免费日韩内陆视频| 亚洲黄色成人网| 日韩毛片在线观看| 国内精品久久久久久久久| 欧美日韩精品在线观看| 91高清视频在线免费观看| 久久精品国产亚洲精品| 伊人久久综合97精品| 欧美成人午夜激情视频| 日韩美女视频在线观看| 久99久在线视频| 国产欧美久久一区二区| 国产a∨精品一区二区三区不卡| 91欧美精品成人综合在线观看| 亚洲一区二区三区久久| 亚洲国产古装精品网站| 国产成人综合av| 日韩免费在线播放| 日韩视频免费在线观看| 欧美专区在线视频| 久久99久久亚洲国产| 国内伊人久久久久久网站视频| 日韩美女主播视频| 欧美自拍大量在线观看| 国产精品精品一区二区三区午夜版| 亚洲精品久久视频| 97激碰免费视频| 日韩欧美综合在线视频| 久久综合五月天| 久热99视频在线观看| 国产亚洲精品高潮| 国产精品成人在线| 亚洲日韩欧美视频一区| 亚洲一区二区国产| 久久综合网hezyo| 亲爱的老师9免费观看全集电视剧| 日韩国产欧美精品一区二区三区| 国产日韩精品综合网站| 亚洲一区二区久久久久久| 日产精品99久久久久久| 欧美在线视频在线播放完整版免费观看| 亚洲永久在线观看| 国产精品91久久久久久| 在线电影欧美日韩一区二区私密| 国产免费观看久久黄| 亚洲韩国青草视频| 亚洲国产精品电影在线观看| 亚洲男女性事视频| 欧美一区深夜视频| 亚洲女人天堂网| 亚洲性日韩精品一区二区| 亚洲精品电影网站| 欧美日韩国产精品| 久久久亚洲国产天美传媒修理工| 青青草精品毛片| 麻豆精品精华液| 欧美日韩性生活视频| 欧美激情免费观看|