检查是否启用了Javascript

Check whether Javascript is enabled

本文关键字:Javascript 启用 是否 检查      更新时间:2023-09-26

是否有办法检查浏览器是否启用或支持Javascript ?如果不支持,我想将用户重定向到用户友好的错误页面。

我正在使用jQuery和PHP Zend框架

<noscript><meta http-equiv="refresh" content="1;url=error.html"></noscript>

如果脚本被禁用,这将重定向到错误页面。请将error.html替换为错误页面的URL。

作为另一种选择,您可以使用javascript(尽管它需要第二次访问页面)来设置cookie。

如果cookie存在服务器端(他们有javascript),则正常呈现页面。在没有cookie的情况下,您可以使用Location重定向,或者呈现适当的[精简]模板来适应它们缺乏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,用于重定向到动态版本。

你可以为不使用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的可见性设置为hidden:

document.getElementById.("hidejs").style.visibility = "hidden";

没有启用Javascript ?什么也不会发生,他们会看到覆盖的非javascript页面。

Javascript启用?上面的非Javascript页面将不可见,他们将看到底层的Javascript页面。

这也使您可以将整个页面保存在一个文件中,使修改更容易,而不是试图为同一个页面管理两个文件。

如果页面没有JavaScript,使用<noscript>标签来包含元重定向。

<noscript>标记在连接到页面的浏览器没有JavaScript时被调用。

默认将用户带到错误页面,并在页面的部分执行javascript重定向。让重定向将用户推送到真实页面。

如果他们没有启用javascript,他们将不会被重定向,其余的页面(错误页面)将加载

是。让你拥有最新的jQuery。

Javascript:

$(function(){ $('#jsEnabled2').html('Yes it is') }) 
PHP:

$js - 'No'; 
$jscheck = 'Javascript Enabled: '; 
$jscheck .= '<span id="jsEnabled">'.$js.'</span>';
print $jscheck;