您的位置:首页 > 其它

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

2013-01-02 09:53 330 查看
因为公司网站需要做一个功能,涉及到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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: