【问题标题】:Redirect if no JavaScript [duplicate]如果没有 JavaScript 则重定向 [重复]
【发布时间】:2013-02-20 19:26:54
【问题描述】:

这是我的情况:

我正在尝试将禁用 JavaScript 的用户重定向到我的 Apache 服务器上的 PHP 生成页面(而不是 AJAX 生成的页面)。

我目前正在使用:

<noscript> <meta http-equiv="refresh" content="0; url=http://mydomain/no_js.php"> </noscript>

有没有办法在页面加载之前重定向用户?

P.S.:如果不是,那么比我目前使用的更快吗?

提前致谢!

【问题讨论】:

  • 在检查javascript之前,您无法检测是否启用了javascript,这需要页面加载,至少到noscript标签为止。
  • 如果您需要检测 JavaScript,则不需要。将&lt;noscript&gt; 标记放在页面上方。理想情况下,在所有 &lt;script&gt;&lt;link&gt; 标签之前
  • window.locatio....哦等等>:)
  • 只是我的 2 美分,但不要为没有 js 的用户费心优化。页面加载一点也没关系。
  • 另外,只需在没有 AJAX 的情况下进行第一次冷加载。这将是同一件事,ajax 通常用于防止页面重新加载,但当然你不能阻止第一个。签出:en.wikipedia.org/wiki/Progressive_enhancement

标签: php apache redirect noscript


【解决方案1】:

如果您需要重定向,请将 PHP 版本设为默认版本,如果启用了 javascript,则重定向。不过,我会避免这种情况,根本没有重定向,只是根据是否启用/禁用 javascript 显示在同一页面上。如果启用,您可以显示 javascript 项目。我通常在页面正文中有一个类名 no-script 并在启用 javascript 时将其删除,然后您可以使用 CSS 来定位基于该标签显示的内容。

【讨论】:

  • 其实这根本不是最好的选择。绝大多数用户将启用 JavaScript。为大多数人优化。不适合极少数人。
  • 我改写了。我不建议重定向,我只是说如果他们必须这样做,我会反转它。
  • 这实际上很有意义。唯一的问题是我必须在每个不同的元素上使用 CSS 类(虽然不是很多)。最好的答案!
【解决方案2】:

不确定这是否会满足您的要求,但这里是:

  1. 首先,创建一个页面来检查 javascript 是否处于活动状态
  2. 其次,如果 javascript 处于活动状态,则重定向到正确的页面
  3. 如果没有,则重定向到在其不活动时创建的页面

这样你没有启用 js 的页面永远不会在没有启用 js bwing 的情况下出现。一点也不。如果您真的需要脚本,只需大声疾呼...

【讨论】:

  • 我仍然需要重定向 + 这会增加负载带宽使用(登录页面)。我不认为它比我目前的做法更有效率。
  • 但实际上,这是在页面加载之前进行定向的唯一方法,正如所要求的那样。只是回答问题;)
  • +1 证明我错了哈哈
  • @PhilippeTrépanier 或者请注意,我认为这不是正确或最好的方法,我不推荐它,您可以简单地将 no javascript 页面放在 &lt;noscript&gt; 标签内然后在标签末尾放一个 php die 函数。如果您确实走那条路线,请告诉我您的票价如何......
  • 我确实想过,但我发现这不是最好的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多