【问题标题】:Check if javascript is enabled in browser检查浏览器中是否启用了javascript
【发布时间】:2010-09-28 15:18:17
【问题描述】:

我有这段代码可以检查 js 是否启用并重定向:

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

但是,我想知道这是否对 SE 友好...

这是因为我最近将我的网站 url 添加到 yahoo,而不是标题出现在搜索结果中,而是出现上面“aktivera_javascript.html”中的文本。这是为什么呢?

谢谢

更新:

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

【问题讨论】:

    标签: javascript html search browser seo


    【解决方案1】:

    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.

    【讨论】:

    • 我还没有更新网站...那么我应该使用其他方法来检查js是否启用?
    • 如果我使用带有警告的 noscript 标签,搜索引擎是否仍会读取并显示在搜索结果中?
    • @roryf:渐进增强链接有一个无关的“1”。在 URL 的末尾。
    • @camran 仅当这是您网站上的第一个文本时。看看 SO 是如何做到的,在顶部使用一个空的 noscript 标签并将真正的标签(在标记中的最后一个)放在它上面。
    【解决方案2】:

    就个人而言,我认为渐进式增强是要走的路。无论如何,您可以尝试以下方法:

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

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

    如果用户启用了 javascript,他们将立即被带到 javascript 友好版本。

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

    【讨论】:

      【解决方案3】:

      我想你不明白这个标签。 noscript 的内容只会显示是否启用了脚本(如 JavaScript)。 (大多数)搜索引擎无法理解 JS 并执行来自noscript 的内容。所以在你的情况下,他们会跟随 url。

      但要小心。使用这种方法,您可以很快得到惩罚。 noscript 最常用于向用户显示 javascript 已禁用的通知。

      【讨论】:

      • 是的,但是如果我有通知,那么搜索引擎不会按照你说的那样遵循那个 noscript,并在搜索结果中显示通知吗?
      • 是的,他们会的。但是您可以将 rel="nofollow" 属性添加到您的链接中。 mos SE 不关注此链接。或者您可以通过 robots.txt 阻止该网站。您可以将信息包装在图像中给用户。
      猜你喜欢
      • 1970-01-01
      • 2012-06-14
      • 2012-05-11
      • 1970-01-01
      • 2013-09-29
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      相关资源
      最近更新 更多