0

当我创建网页时,我希望页面上的所有功能都放在不同浏览器中的相同位置。有时,当我在不同的浏览器上运行页面时,某些功能被放置在不同的位置。我使用这些变量来确定正在打开的浏览器是正确的,例如,我使用 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(...)'时返回什么类型。它是布尔值还是某种返回参数位置的集合,就像哈希表一样?究竟返回什么类型?

4

3 回答 3

0

所以你在找这个我想:

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

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

于 2013-03-21T09:02:29.753 回答
0

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

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

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

(3) 顺便说一句:发布初学者问题的好名字;)

于 2013-03-21T08:59:49.063 回答
0
  1. 不同的浏览器可能有不同的初始位置行为,使它们行为相同的一个好做法是进行 CSS 重置。

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

于 2013-03-21T08:57:24.127 回答