我有动态创建的页面。
现在我想添加ajax函数,所以我想添加if语句来改变输出。
if(js is on){
...
...
echo "js is on";
}else{
...
echo "js is off";
}
有什么方法可以检测js是否启用了php?
或者有什么方法可以通过jquery删除/隐藏它吗?
提前致谢。
答案 0 :(得分:9)
PHP在任何浏览器操作发生之前执行,所以不,PHP无法直接检测用户是否启用了Javascript。
您必须提供更多信息,告诉您我们为您找到的解决方法。在PHP中,可以使用jQuery将自动设置的$_SERVER['X_HTTP_REQUESTED_WITH']
全局变量来检测调用是通过AJAX进行的。
如果您需要在启用Javascript时显示元素,您可以先使用CSS隐藏元素并使用Javascript / jQuery启用它。反过来也是如此。
答案 1 :(得分:4)
你不能在PHP中这样做,因为页面是在你知道的时候呈现的。除了一些疯狂的重定向场景,你最好的选择可能是使用CSS + JS显示/隐藏你需要的东西:
我通常做的事情(你的里程可能因你需要展示/隐藏的内容而有所不同)是这样的:
<html>
<head>
... other stuff here, title, meta, etc ...
<script type="text/javascript">document.documentElement.className += " js"</script>
... everything else
</head>
然后,您可以使用CSS隐藏/显示基于JavaScript是否启用/禁用:
/* Hide by default, show if JS is enabled */
#needsJS { display: none }
.js #needsJS { display: block }
/* Show by default, hide if JS is enabled */
.js #fallback { display: none }
答案 2 :(得分:2)
它不能直接做到,并且它的变通方法通常很笨拙和浪费。
改为使用渐进增强技术。
答案 3 :(得分:0)
让网站在没有JS的情况下工作。如果一切正常,您可以附加JS功能,例如jQuery的。
所以你基本上不区分带有JS的客户端和没有JS的客户端。您不提供不同的输出。您可以通过这样的方式设置HTML代码,以便以编程方式轻松识别JS应该具有此功能的元素。
这种方式对您来说更加容易,因为您不必考虑不同的输出,并且它保证了站点在没有JS的情况下也能正常工作。