我们还需要在JavaScript中检查不同的浏览器类型吗?

时间:2008-11-26 17:53:01

标签: javascript jquery

这可能是一个简单的问题,我有点尴尬地问它,但我一直在处理这段JavaScript广告代码已经有一段时间了,这让我感到困扰,因为它对我来说从未真正有意义,而且是可能与现代浏览器过时了。我的问题是,我们是否还需要检查浏览器类型,以及脚本的第二部分是什么?

<script type="text/javascript">
  document.write('<scr' + 'ipt src="" type="text/javascript"></scr' + 'ipt>');
</script>
<script type="text/javascript">
  if ((!document.images && navigator.userAgent.indexOf('Mozilla/2.') >= 0)  || navigator.userAgent.indexOf("WebTV")>= 0) {
    document.write('<a href="">');
    document.write('<img src="" border="0" alt="" /></a>');
  }
</script>

我想澄清一点,我实际上是在给某人调用一些广告代码,所以虽然我可以检查浏览器类型,但这确实是代码管理员的责任。如果我能把它变成jQuery,我会喜欢它 - 但是我在调​​用时遇到了麻烦(请参阅下面的其他帖子)。

我想知道的是,我还需要检查这些浏览器类型吗?

干杯,
史蒂夫

5 个答案:

答案 0 :(得分:5)

我们大多使用像jQuery这样的javascript库来为我们处理这类事情。

奇怪的是,我发现自己最近经常乱砍每个浏览器的CSS。

答案 1 :(得分:2)

最好检查浏览器DOM是否支持特定功能,而不是直接处理用户代理字符串。

答案 2 :(得分:1)

在第二段代码中: 它正在检查两件事:

  • 打开文档的浏览器支持DOM的document.images部分,文档包含任何图像,浏览器的UserAgent字符串(标识符)包含“Mozilla / 2”。
  • 或者UserAgent字符串包含“WebTV”

在这些情况下,它会输出一个空链接和图像标记。

答案 3 :(得分:0)

这就是使用API​​(例如jQuery)的原因。他们将检查浏览器兼容性(以及未来的兼容性)的行为从开发人员那里卸下。当出现新的浏览器或新版本的浏览器时,必要时会更新API,以便您的代码继续有效。

那么看看你是否可以用jQuery提出解决方案,你不必担心这个问题。为了将来的兼容性,您可能必须获得最新版本的jQuery,但理论上您的代码不必更新。

答案 4 :(得分:0)

很高兴听到有这么多人支持jQuery,但我添加的代码是针对我无法控制的外部脚本而且我的问题是每当我使用jQuery调用此脚本时,广告就会打开在他们自己的页面上:

$(this).append().html('<script src="http://ad.doubleclick.net/adj/' + site + '.iclick.com/adtarget;subss=' + subss + ';subs=' + subs + ';area=' + area + ';site=' + site + ';kw=' + kw + ';sz=' + $adSize + ';pos=' + count + ';tile=' + tilecount + ';ord=' + zzzzadslotzzzz + '"></script>');

我很乐意将这些内容转移到jQuery中(这是我的目标,因为我希望在文档准备就绪之前阻止广告加载)

谢谢,
史蒂夫