![](/img/trans.png)
[英]What is the best way to check whether javascript is enabled in client browser?
[英]Check whether Javascript is enabled
有没有办法检查浏览器是否启用或支持 Javascript? 如果不支持,我想将用户重定向到用户友好的错误页面。
我正在使用 jQuery 和 PHP Zend 框架。
<noscript><meta http-equiv="refresh" content="1;url=error.html"></noscript>
如果脚本被禁用,这将重定向到错误页面。 只需将error.html
替换为错误页面的 URL 即可。
作为另一种选择,您可以(尽管它需要第二次页面访问)使用 javascript 来设置 cookie。
如果 cookie 存在于服务器端(它们有 javascript),则正常呈现页面。 在没有 cookie 的情况下,您可以使用Location
重定向,或呈现适当的 [stripped-down] 模板以适应它们缺乏 javascript 支持。
页 html
<script type="text/javascript">
document.cookie = 'hasJS=true';
</script>
页 php
if (isset($_COOKIE['hasJS'])){
// normal page render
}else{
header('Location: http://mysite.com/index-nojs.php');
}
javascript 是否启用只能从浏览器的上下文中得知,因此您能做的最好的事情是编写一些浏览器端代码来根据 javascript 是否启用来设置标志。 一种可能性是做类似的事情
<noscript><img src="/javascript_disabled.php"></noscript>
和
// contents of javascript_disabled.php
$_SESSION['javascript_disabled'] = 1;
默认发送不带 javascript 的版本。 在那里,您包含一小块 javascript 重定向到动态版本。 这只会在启用 js 时执行。
您可以为没有 javascript 的用户制作一个简单的“登陆页面”,并将 javascript 重定向添加到支持 javascript 的站点版本。
像这样的东西:
...
<html>
...
<script type="text/javascript">
window.location.replace("/hasjs");
</script>
小菜一碟!
将整个 Javascript 页面包含在一个 DIV 中。
覆盖第二个相同大小的 DIV,其中包含您的非 Javascript 页面。 给那个 DIV 一个 id 和一个高 z-index:
div id="hidejs" style="z-index: 200"
在第二个非 JS DIV 中,将您的第一个代码设置为 Javascript,将这个 DIV 的可见性设置为隐藏:
document.getElementById.("hidejs").style.visibility = "hidden";
没有启用 Javascript? 什么都不会发生,他们会看到覆盖的非 Javascript 页面。
Javascript 已启用? 上层的非 Javascript 页面将不可见,他们将看到底层的 Javascript 页面。
这也使您可以将整个页面保存在一个文件中,从而使修改更容易,而不是尝试为同一页面管理两个文件。
如果页面没有 JavaScript,请使用<noscript>
标签包含元重定向。
<noscript>
标签在连接到页面的浏览器没有 JavaScript 时调用。
默认情况下将用户带到错误页面,并在页面部分执行 javascript 重定向。 让重定向将用户推送到真实页面。
如果他们没有启用 javascript,他们将不会被重定向并且页面(错误页面)的 rest 将加载。
是的。 让您拥有最新的jQuery。
Javascript:
$(function(){ $('#jsEnabled2').html('Yes it is') })
PHP:
$js - 'No';
$jscheck = 'Javascript Enabled: ';
$jscheck .= '<span id="jsEnabled">'.$js.'</span>';
print $jscheck;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.