今天,我把自己的浏览器脚本给禁用了,为了想看下他们是如何处理的,然后登录了一些网站:

百度帐号都无法登录,163邮箱无法登录也没给出任何的友好显示,淘宝、京东也是一团糟,新浪还好些,新浪邮箱给出了HTML文档提示:

pic

潦潦看了一下,爆出的毛病都是些不友好的界面,大家都知道“一切input都是邪恶的,js验证只是给君子使用的”.

早期浏览器都面临一个特殊的问题,就是当浏览器不支持js或者js脚本被禁用时如何让页面平稳的退化。对这个问题的最终解决办法是创建一个<noscript>元素,用以在不支持js或禁用js脚本的浏览器中使用。这个元素能够包含出现在文档中的任何html元素---<script>元素除外,<noscript>元素只有在以下条件下才会显示出来:

  • 浏览器不支持脚本
  • 浏览器支持脚本,但脚本被禁用

符合以上任何一个条件,浏览器就会显示noscript中的内容,除此之外的任何情况下,都不会呈现noscript中的内容,下面看一个例子:

<!DOCTYPE HTML>
<html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Noscript</title>
    <script type="text/javascript" defer="defer" src="./js/noscript.js"></script>
    </head>
    <body>
    <noscript>
        <h1>本页面已禁用js脚本</h1>
    </noscript>
    </body>
</html>

这个页面会在脚本无效的情况下向用户显示一条信息,而在启用了脚本的浏览器中,用户永远也不会看到他,尽管他是页面的一部分。