有没有办法检查 PHP 是否启用了 JavaScript?如果是这样,如何?
检查 PHP 是否启用了 JavaScript
IT技术
php
javascript
2021-02-05 15:26:33
6个回答
也许是一个更简单的选择......
<html>
<head>
<noscript>
This page needs JavaScript activated to work.
<style>div { display:none; }</style>
</noscript>
</head>
<body>
<div>
my content
</div>
</body>
</html>
不,这是不可能的,因为 PHP 是一种服务器端语言,它不会以任何方式或形式(客户端从 PHP 服务器请求)访问客户端的浏览器。
客户端可能会通过 HTTP 标头提供一些元信息,但它们不一定会告诉您用户是否启用了 JavaScript,无论如何您都不能依赖它们,
技术上没有,因为正如其他答案所说,PHP 是严格的服务器端,但你可以这样做......
在服务器端的PHP页面中,输出(为简洁起见删除了很多HTML)
<html>
<head>
<script type="text/javascript" src="jquery1.4.4.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.get("myPage.php");
});
</script>
</head>
</html>
然后在myPage.php
设置一个会话变量来表明客户端支持JS
<?php
session_start();
$_SESSION['js'] = true;
?>
但实际上,只需使用<script></script><noscript></noscript>
标签,省力得多……
//这是一个解决方案://它完美无缺
<?php
if(!isset($_SESSION['js'])||$_SESSION['js']==""){
echo "<noscript><meta http-equiv='refresh' content='0;url=/get-javascript-status.php&js=0'> </noscript>";
$js = true;
}elseif(isset($_SESSION['js'])&& $_SESSION['js']=="0"){
$js = false;
$_SESSION['js']="";
}elseif(isset($_SESSION['js'])&& $_SESSION['js']=="1"){
$js = true;
$_SESSION['js']="";
}
if ($js) {
echo 'Javascript is enabled';
} else {
echo 'Javascript is disabled';
}
?>
//然后在 get-javascript-status.php 中:
$_SESSION['js'] = isset($_GET['js'])&&$_GET['js']=="0" ? "0":"1";
header('location: /');
无法判断浏览器是否启用了 JS,但可以判断浏览器是否支持 JS http://php.net/manual/en/function.get-browser.php
$js_capable = get_browser(null, true)=>javascript == 1
说了这么多,估计也没啥用。您应该重新考虑从 PHP 检测 JS。如果您使用渐进增强,则不需要它,这意味着 JS 只会向页面上已有的内容添加功能。
其它你可能感兴趣的问题