关于firefox(火狐浏览器)document.all和document.layers

因为公司网站需要做一个功能,涉及到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>


好了,今天就写到这里,希望解占辉的文章能够帮助大家,谢谢!

本文出自 “云计算架构师-解占辉” 博客,请务必保留此出处http://jeffxie.blog.51cto.com/1365360/302376


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值