<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        javascript下4個跨瀏覽器必備的函數_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:47:48
        文檔

        javascript下4個跨瀏覽器必備的函數_javascript技巧

        javascript下4個跨瀏覽器必備的函數_javascript技巧:下面四個函數就是其中的一部分。 首先我們要添加一段瀏覽器檢測腳本: 代碼如下: /************************************ * 檢測瀏覽器 ***********************************/ var user = navigator.userAgent; var
        推薦度:
        導讀javascript下4個跨瀏覽器必備的函數_javascript技巧:下面四個函數就是其中的一部分。 首先我們要添加一段瀏覽器檢測腳本: 代碼如下: /************************************ * 檢測瀏覽器 ***********************************/ var user = navigator.userAgent; var

        下面四個函數就是其中的一部分。

        首先我們要添加一段瀏覽器檢測腳本:
        代碼如下:
        /************************************
        * 檢測瀏覽器
        ***********************************/
        var user = navigator.userAgent;
        var browser = {};
        browser.opera = user.indexOf("Opera") > -1 && typeof window.opera == "object";
        browser.khtml = (user.indexOf("KHTML") > -1 || user.indexOf("AppleWebKit") > -1 || user.indexOf("Konqueror") > -1) && !browser.opera;browser.ie = user.indexOf("MSIE") > -1 && !browser.opera;
        browser.gecko = user.indexOf("Gecko") > -1 && !browser.khtml;
        if ( browser.ie ) {
        var ie_reg = /MSIE (\d+\.\d+);/;
        ie_reg.test(user);
        var v = parseFloat(RegExp["$1"]);
        browser.ie55 = v <= 5.5;
        browser.ie6 = v <= 6;
        }

        一) 添加事件綁定 bind()
        這個想必大家都已知道。IE 的事件綁定函數是 attachEvent;而 Firefox, Safari 是 addEventListener;Opera 則兩種都支持。下面進行封裝。
        代碼如下:
        /************************************
        * 添加事件綁定
        * @param obj : 要綁定事件的元素
        * @param type : 事件名稱。不加 "on". 如 : "click" 而不是 "onclick".
        * @param fn : 事件處理函數
        ************************************/
        function bind( obj, type, fn ) {
        if ( obj.attachEvent ) {
        obj['e'+type+fn] = fn;
        obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
        obj.attachEvent( 'on'+type, obj[type+fn] );
        } else
        obj.addEventListener( type, fn, false );
        }
        例如添加一個頁面點擊事件:

        bind(document, "click", function() {
        alert("Hello, World!!");
        });

        二) 刪除事件綁定 unbind()
        和 bind() 函數參數相同,功能相反。
        代碼如下:
        /************************************
        * 刪除事件綁定
        * @param obj : 要刪除事件的元素
        * @param type : 事件名稱。不加 "on". 如 : "click" 而不是 "onclick"
        * @param fn : 事件處理函數
        ************************************/
        function unbind( obj, type, fn ) {
        if ( obj.detachEvent ) {
        obj.detachEvent( 'on'+type, obj[type+fn] );
        obj[type+fn] = null;
        } else
        obj.removeEventListener( type, fn, false );
        }

        三) 獲取元素的計算樣式
        計算樣式也叫最終樣式,也就是元素最終呈現出來的樣式。IE 用的是元素的 currentStyle 屬性,而其他瀏覽器則是標準的 document.defaultView.getComputedStyle() 方法。
        代碼如下:
        /************************************
        * 返回元素的計算樣式
        * @param element : 元素
        * @param key : 樣式名稱(駱駝)
        ************************************/
        function getStyle(element, key) {
        // 參數不正確
        if ( typeof element != "object" || typeof key != "string" || key == "" )
        return false;

        // 不透明度
        if( key == "opacity" ) {
        if(browser.ie) {
        var f = element.filters;
        if(f && f.length > 0 && f.alpha) {
        return (f.alpha.opacity / 100);
        }
        return 1.0;
        }
        return document.defaultView.getComputedStyle(element, null)["opacity"];
        }

        // 浮動
        if ( key == "float" ) {
        key = (browser.ie ? "styleFloat" : "cssFloat");
        }
        if ( typeof element.currentStyle != "undefined" ){
        return element.currentStyle[key];
        } else {
        return document.defaultView.getComputedStyle(element, null)[key];
        }
        }

        IE 和其他瀏覽器的透明度機制不一樣,這里統(tǒng)一用 opacity 表示透明度。還有,由于 float 是 JavaScript 的保留字,所以瀏覽器對其進行了轉義,IE 用的是 styleFloat,其他則為 cssFloat。這里統(tǒng)一為 float。

        例如:獲取透明度
        代碼如下:
        var a = document.getElementById("test");
        var opacity = getStyle(a, "opacity");

        四) DOM 加載完畢事件綁定 domready()
        domready 和 window.onload 有所不同,window.onload 是頁面所有元素全部加載完畢,包括圖像,視頻等一些東西。而一般情況下我們不需要等那么久,而只需要 DOM 可用即可。
        代碼如下:
        /************************************
        * domready
        * @param fn: 要執(zhí)行的函數
        ************************************/
        function domready(fn) {
        // 參數不正確
        if(typeof fn != "function")
        return false;
        if(typeof document.addEventListener == "function") { // 非 IE 瀏覽器
        document.addEventListener("DOMContentLoaded", fn, false);
        return;
        }
        var _this = arguments.callee;
        if(_this.ready) // 如果 DOM 已經加載完畢, 則直接執(zhí)行
        return fn();

        if(!_this.list) // 創(chuàng)建一個待執(zhí)行函數數組
        _this.list = [];

        _this.list.push(fn);

        if (_this.done) return; // 正在循環(huán)檢測則返回
        (function() { // 循環(huán)檢測
        _this.done = true;
        try {
        document.documentElement.doScroll("left");
        } catch(error) {
        setTimeout(arguments.callee, 0);
        return;
        }
        // DOM 加載完畢, 執(zhí)行所有待執(zhí)行函數
        _this.ready = true;
        for (var i=0, l=_this.list.length; i_this.list[i]();
        }
        })();
        }

        例如:
        代碼如下:
        domready(function(){
        alert("DOM 加載完畢!");
        });

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript下4個跨瀏覽器必備的函數_javascript技巧

        javascript下4個跨瀏覽器必備的函數_javascript技巧:下面四個函數就是其中的一部分。 首先我們要添加一段瀏覽器檢測腳本: 代碼如下: /************************************ * 檢測瀏覽器 ***********************************/ var user = navigator.userAgent; var
        推薦度:
        標簽: 必備 瀏覽器 js
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久亚洲国产| 亚洲电影免费观看| 未满十八私人高清免费影院| 好大好硬好爽免费视频| 亚洲中文字幕乱码熟女在线| 全免费a级毛片免费看不卡| 亚洲欧美日韩中文无线码| 国产又长又粗又爽免费视频| 亚洲AV日韩AV一区二区三曲 | 久久99国产乱子伦精品免费| 99久久精品国产亚洲| 4455永久在线观免费看| 一本色道久久88—综合亚洲精品| 成年女人毛片免费播放人 | 你懂的在线免费观看| 亚洲国产成人久久综合一 | 免费无码成人AV在线播放不卡| 亚洲福利视频一区| 成人免费一级毛片在线播放视频| 亚洲愉拍一区二区三区| 免费观看国产精品| a级日本高清免费看| 亚洲中文无码a∨在线观看| 国产美女无遮挡免费视频| 无码免费又爽又高潮喷水的视频 | 亚洲高清无码在线观看| 日本一区午夜艳熟免费| 亚洲国产成人手机在线电影bd | 亚洲中文字幕久久精品无码2021| 日韩免费无码一区二区视频| 国产伦精品一区二区免费| 亚洲国产一区二区三区青草影视 | 亚洲国产香蕉人人爽成AV片久久| 免费国产成人18在线观看| 国产婷婷综合丁香亚洲欧洲| 日本中文一区二区三区亚洲| 国内精品免费视频精选在线观看| 亚洲中文字幕一二三四区苍井空 | 久久精品蜜芽亚洲国产AV| 国产一区二区三区在线免费| 国产无遮挡无码视频免费软件|