因為公司網站需要做一個功能,涉及到javascript裡的document.all方法
並且因為需要相容netspace,firefox等瀏覽器,netspace網上的說法是用document.layers
但是針對firefox的說法不一,有的說用document.getElementById,有的說火狐本身就支援document.all
可是經過我的測試,結果是firefox裡面提示document.all未定義,這個問題著實讓我苦惱了一陣,因為網上
並沒有針對此種方法的定義,最後在我堅持不懈的努力下,終於找到一個方法,測試結果符合我的需求。
這個方法就是getElementsByTagName.
這樣的話,我們就是可以針對每種瀏覽器,去設定javascript內建方法了。
以下是程式碼:
<script type=“text/javascript”>
        alert(document.getElementsByTagName(“*”)); //這裡是獲取所有的dom元件
        //alert(document.getElementsByTagName(“h1”)[0].id); //這裡是相容firefox的程式碼.獲取指定dom標籤
        alert(document.all); //Ie裡的方法
        alert(document.layers); //Netspace裡的方法
</script>

這裡是獲取瀏覽器的方法,可以結合上面的程式碼使用,最終達到自己的需求。

        <script type=“text/javascript”>
                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) document.write(`IE: ` + Sys.ie);
                if (Sys.firefox) document.write(`Firefox: ` + Sys.firefox);
                if (Sys.chrome) document.write(`Chrome: ` + Sys.chrome);
                if (Sys.opera) document.write(`Opera: ` + Sys.opera);
                if (Sys.safari) document.write(`Safari: ` + Sys.safari);
        </script>

好了,今天就寫到這裡,希望解佔輝的文章能夠幫助大家,謝謝!