<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
        主站蜘蛛池模板: 国产极品粉嫩泬免费观看 | 免费看小12萝裸体视频国产| 亚洲日韩一页精品发布| 亚洲Av永久无码精品一区二区| 久久九九兔免费精品6| 亚洲熟妇无码另类久久久| 黄色免费网站在线看| 美女被免费视频网站a国产| 亚洲熟妇av一区| 亚洲国产精品免费在线观看| 亚洲福利在线观看| 成全视频免费观看在线看| 国产AⅤ无码专区亚洲AV| 黄色毛片免费网站| 亚洲精品成人区在线观看| 色妞www精品视频免费看| 日韩人妻无码免费视频一区二区三区 | 18禁网站免费无遮挡无码中文| 亚洲精品无码Av人在线观看国产 | 国产亚洲综合成人91精品| 久久不见久久见免费影院www日本| 又大又黄又粗又爽的免费视频| 精品国产_亚洲人成在线| 国产免费啪嗒啪嗒视频看看| 苍井空亚洲精品AA片在线播放| 国产成人免费a在线资源| 老司机午夜在线视频免费观| 亚洲毛片不卡av在线播放一区| 全部一级一级毛片免费看| 亚洲成a人片在线观看久| 国产精品综合专区中文字幕免费播放| mm1313亚洲精品无码又大又粗| 一级毛片不卡免费看老司机| 国产精品亚洲αv天堂无码| 91视频免费观看| 久久精品国产亚洲AV麻豆不卡| 免费人成在线观看网站品爱网| 亚洲欧洲日本天天堂在线观看| 永久免费av无码网站韩国毛片| 亚洲AV无码一区二区三区牲色| 亚洲成a人一区二区三区|