在<noscript>中设置PHP变量

Setting PHP variable in <noscript>

本文关键字:PHP 设置 变量 noscript      更新时间:2023-09-26

像下面这样的东西不起作用:

<?php $nojs = false; ?>
<noscript>
    <?php $nojs = true; ?>
</noscript>

因为无论是否启用 JS,都会执行 PHP。但是有没有办法获得类似的效果呢?如果禁用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。