检查浏览器中是否启用了javascript

时间:2010-09-28 15:18:18

标签: javascript html search browser seo

我有这个代码检查是否启用了js并重定向:

<noscript><meta http-equiv="refresh" content="0;url=http://www.domain.se/act.html"></noscript>

然而,我想知道这是否是SE友好...

这是因为我最近将我的网站网址添加到了雅虎,而不是搜索结果中出现的标题,而是显示上面“aktivera_javascript.html”中的文字。那是为什么?

由于

更新

如果上面的代码不适合检查js的可用性,那么我应该使用其他什么方法呢?

3 个答案:

答案 0 :(得分:3)

noscript标记用于无法执行脚本的用户代理。自雅虎以来! spider是其中一个代理,我猜(但不能肯定)它尊重noscript标记的内容,因此包含在其中的HTTP-refresh指令。结果是,它认为您的网站位于http://www.skuffen.se/aktivera_javascript.html,并在搜索结果中显示该内容。

要解决这个问题,我建议:

  1. 使用progressive enhancement确保基本内容在没有Javascript的情况下可用,并在顶层提供图层高级功能。没有Javascript的用户代理将不会有任何不同,而那些将会获得更丰富经验的用户代理。
  2. 只需将noscript标记用作警告,而不是完全重定向到其他网页,请参阅How to check browser's JavaScript is enabled or not.

答案 1 :(得分:1)

就个人而言,我认为渐进式增强是可行的方法。无论如何,你可以尝试类似的东西:

默认情况下,人们到达非js页面。在页面上有一个在加载时运行的脚本:

<script type="text/javascript">
  window.location.href = 'page-with-javascript.html';
</script>

如果用户启用了javascript,则会立即将其转到javascript友好版本。

但是...渐进式增强:)

答案 2 :(得分:0)

我认为你不明白这个标签。 noscript的内容仅显示脚本(如JavaScript)是否启用。 (大多数)搜索引擎无法理解JS并执行noscript中的内容。所以在你的情况下,他们会关注网址。

但要小心。使用这种方法可以非常快速地获得惩罚。 noscript最常用于向用户显示通知,即javascript已停用。