Php 如果用户禁用javascript,如何回退到完全不同的索引页?

Php 如果用户禁用javascript,如何回退到完全不同的索引页?,php,javascript,fallback,Php,Javascript,Fallback,我有一个大型的、动态生成的、单页的网站,它严重依赖javascript。我想为没有javascript的人提供一个后备方案 每个版本必须有不同的php代码,所以基本上我需要一个完全不同的索引页。我不想把所有的东西都用javascript包起来,其他的都用标签包起来。除非有一个简单的方法 根据是否启用javascript,加载一个页面或另一个页面的最佳方式是什么?首先,要直接回答您的问题,如果使用location.href启用javascript,您可以将用户重定向到第一个索引页面之外。也就是说,

我有一个大型的、动态生成的、单页的网站,它严重依赖javascript。我想为没有javascript的人提供一个后备方案

每个版本必须有不同的php代码,所以基本上我需要一个完全不同的索引页。我不想把所有的东西都用javascript包起来,其他的都用标签包起来。除非有一个简单的方法


根据是否启用javascript,加载一个页面或另一个页面的最佳方式是什么?

首先,要直接回答您的问题,如果使用
location.href
启用javascript,您可以将用户重定向到第一个索引页面之外。也就是说,如果用户没有启用JavaScript,它们将保留在第一页。否则,它们将被重定向到JavaScript版本

但我通常的做法是首先确保网站在没有JavaScript的情况下工作;然后在普通版本运行后,添加额外的JavaScript代码

<a href="foo.php" onclick="return foo();">Foo</a>


在这里,如果没有启用JS,它们将转到
foo.php
。否则,您可以让函数
foo
执行某些操作并返回false,从而将它们保留在页面上。表单也可以这样做。

似乎将PHP重定向放在noscript标记中是最简单的方法。

使用
noscript
标记为用户提供一种进入非javascript页面的方法

示例:运行时的代码(当JS关闭时)


提示:查看时禁用JS以理解..)

是客户端;您不能将任何PHP代码放入其中。。。你可以做一些类似于
的事情,但是用另一种方式做会更加透明。我不太相信这一点。谢谢@马修:我不同意。我最近在查看时发现此线程,并建议使用
将正常工作(已测试)。我只是想让你知道这一点,因为它确实对我有用。@Fred,我的意思是无论JS是否可用,PHP代码都将始终运行。在您的
回声示例中,没有不良副作用。但是按照这个答案执行PHP重定向是行不通的,因为它总是会被执行的。@Matthew我同意你的看法,Matthew。人们不禁要问,为什么这样的选择从未在内部实施;一定有很好的理由不这样做。