在 <noscript> 中设置 PHP 变量
Setting PHP variable in <noscript>
类似下面的内容不起作用:
<?php $nojs = false; ?>
<noscript>
<?php $nojs = true; ?>
</noscript>
因为 PHP 无论是否启用 JS 都会执行。但是有没有办法获得类似的效果呢?如果 JS 被禁用,我会尝试设置一个标志,然后相应地显示部分页面。
PHP在javascript之前执行,所以你不能这样做。一旦 ajax 页面被成功查询,您可以执行一些基本的 ajax 请求并将 hasjs
存储在会话变量中。您不会知道 ajax 请求是否由于其他原因而没有成功,或者他们是否禁用了 Javascript。
无论如何让我们试一试:
头标签中的 jquery 脚本
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$.get( "hasjs.php", { hasjs: "1"} );
});
</script>
PHP 文件 (hasjs.php)
<?php
if(isset($_GET['hasjs']))
{
session_start();
$_SESSION['hasjs'] = 1;
}
?>
然后您可以访问会话变量以确定他们是否有基于 ajax 查询的 JS。如果用户没有安装 JS,则不会阻止用户访问该页面。
类似下面的内容不起作用:
<?php $nojs = false; ?>
<noscript>
<?php $nojs = true; ?>
</noscript>
因为 PHP 无论是否启用 JS 都会执行。但是有没有办法获得类似的效果呢?如果 JS 被禁用,我会尝试设置一个标志,然后相应地显示部分页面。
PHP在javascript之前执行,所以你不能这样做。一旦 ajax 页面被成功查询,您可以执行一些基本的 ajax 请求并将 hasjs
存储在会话变量中。您不会知道 ajax 请求是否由于其他原因而没有成功,或者他们是否禁用了 Javascript。
无论如何让我们试一试:
头标签中的 jquery 脚本
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<script>
$( document ).ready(function() {
$.get( "hasjs.php", { hasjs: "1"} );
});
</script>
PHP 文件 (hasjs.php)
<?php
if(isset($_GET['hasjs']))
{
session_start();
$_SESSION['hasjs'] = 1;
}
?>
然后您可以访问会话变量以确定他们是否有基于 ajax 查询的 JS。如果用户没有安装 JS,则不会阻止用户访问该页面。