跨越不同浏览器的定位

时间:2013-03-21 08:42:03

标签: javascript html browser cross-browser

当我创建网页时,我希望页面上的所有功能都放在不同浏览器的相同位置。当我在不同的浏览器上运行页面时,有时会将某些功能放在不同的位置。我正在使用这些变量来确定正在打开的浏览器,并使用if语句确定一些选项。

//var firefox = (navigator.userAgent.indexOf("Firefox") != -1);
//var opera = (navigator.userAgent.indexOf("Opera") != -1);
//var ie = (navigator.userAgent.indexOf("MSIE") != -1);
//var safari = (navigator.userAgent.indexOf("Safari") != -1);
//var scrome = (navigator.userAgent.indexOf("Chrome") != -1);

1。当某些功能放在不同浏览器的不同位置时,这样做是否是一种好方法?

2.当我使用'navigator.userAgent.indexOf(...)'时返回什么类型。它是布尔值还是某种类型的集合,它返回参数的位置,就像哈希表一样?什么类型的确切返回?

3 个答案:

答案 0 :(得分:0)

  1. 不同的浏览器可能会有不同的初始位置行为,让它们表现相同的一个好方法是进行CSS重置。

  2. navigator.userAgent是一个字符串对象,因此.indexOf(...)返回整数Number

答案 1 :(得分:0)

(1)不要根据用户代理字符串进行浏览器检测。这非常不可靠,而且非常不是2013年。您希望使用像modernizr这样的框架来检测哪些功能受支持(哪些功能不受支持)。 This是一个好的开始。

(2)不是集合,只是一个描述原始字符串中搜索字符串位置的数字。请参阅here,或自行了解:

typeof(navigator.userAgent.indexOf("foo"))

(3)BTW:发布初学者问题的惊人名称;)

答案 2 :(得分:0)

所以你想找到这个我想:

  <!--[if IE]> 
   <link rel="stylesheet" type="text/css" href="style.css" />
    <!-->

该代码应放在页面的Head部分,您可以为每个浏览器指定一个多个css页面,此链接适用于IE(Internet Explorer),例如

相关问题