最常用的方式是使用<noscript>标签,此标签就是当javascript被禁用或者不被支持的时候提供一种代替方式,即<noscript>标签的内容会在此时被浏览器解析,作为javascript不可用时的备选方案。

此标签的常规用法就是当javascript不可用时显示提示信息。

<script type="text/javascript">

//一些操作

</script>

<noscript>

<p>浏览器不支持javascript</p>

</noscript>

但是<noscript>标签不够灵活,有些时候javascript不可用并不是因为脚本被禁用导致,因此最好不要使用<noscript>标签,而是更改设计,让页面从无脚本模式过度到有脚本模式。即从不支持脚本到支持脚本的渐进增强,从而保证两种模式下页面都可用。

<from action ="calcSquare.php">

<p>

<lable for x>Number</lable>:

<input id "x" name="x" type="number">

</p>

<input id ="submit" type=submit value="Calculate Square">

<script>

var x=document.getElementById("x")

var output=document.createElement('p');

output.textContent='Type a numeber ;it will be squared right then!';

x.form.appendChild(output);

x.form.onsubmint=function(){return false};

x.output=function(){

var v=x.valueAsNumber;

output.textContent=v+'squared is '+v*v;

};

var submit=document.getElementById('submint');

submit.parentNode.removeChild(submit);

</script>

</form>

一般很难设计出合理的渐进增强效果。最佳做法是提示用户javascript已经被禁用,并同时提供一个功能简单,不依赖javascript的代替网站供用户继续浏览做到平稳的降级,也可以直接跳转到一个不依赖脚本的代替页面中。

例如百度首页添加了如下的代码

<noscript><meta http-equiv="refresh" content="0";url=/baidu.html from=noscript"/></noscript>

为了使页面脚本不可用时还能正常展示,可能需要针对部分模块设置区别脚本的禁用和启用时页面的不用风格。常用的方法是给页面HTML标签添加一个名为no-jsd的class,并在脚本中添加移除此class的逻辑,在样式代码中可以这样设置不同状态下的样式:

/*脚本启用时对应的样式*/

.product{

}

/*脚本不可用时,通过覆盖以上定义的样式或者添加额外的样式设置不同的外观*/

.no-js.product{

}

WEB学习笔记8-添加javascript禁用的提示的更多相关文章

  1. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. Java Web 学习笔记 1

    Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...

  4. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  5. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. java web 学习笔记 编码问题总结

       java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...

  7. R语言可视化学习笔记之添加p-value和显著性标记

    R语言可视化学习笔记之添加p-value和显著性标记 http://www.jianshu.com/p/b7274afff14f?from=timeline   上篇文章中提了一下如何通过ggpubr ...

  8. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

随机推荐

  1. 一条shell命令让多台Linux服务器执行

    1.环境 局域网环境有3台Linux服务器,配置host文件 [root@master1 ~]# vim /etc/hosts 192.168.8.201 master1 192.168.8.202 ...

  2. 从零开始学Python 一

    一.安装 1.进入Python官网下载环境:https://www.python.org 2.根据自己的电脑选择安装版本,然后安装即可. 二.运行第一个程序 1.安装完Python,会自带一个编辑器, ...

  3. java操作svn工具类SvnUtil

    直接上代码,工作中使用的版本,记录下. public class SvnUtil { private static Logger logger = Logger.getLogger(SvnUtil.c ...

  4. java第七次课堂笔记

  5. http中的socket是怎么一回事

    首先我们先看一下socket的定义:是在传输层和应用层中间的一个抽象层,是实现网络通信的接口. 那么什么是传输层,什么是应用层呢?网络又是怎样通信的呢?为了弄清这两个问题,我们需要弄清一个概念TCP/ ...

  6. C# [LINQ] Linq Expression 获取多格式文件

    using System; using System.IO; using System.Linq; using System.Linq.Expressions; internal static str ...

  7. C#安装Telnet

    1.打开电脑控制面板: 2.“查看方式”改成小图标: 3.点击“程序和功能”: 4.在左侧选择“启用或关闭Windows功能”: 5.选择“Telnet服务器”.Telnet客户端: 6.点击“确定” ...

  8. PYTHON实现算术表达式构造二叉树

    LEETCOCE 224. Basic Calculator Implement a basic calculator to evaluate a simple expression string. ...

  9. 如何下载最新Xshell版本、免费官方正版软件的技巧过程

    我们在操作和管理Linux VPS.服务器的时候,肯定需要使用SSH工具,对于这个工具网上有很多免费和付费版本.对于我们用户来说肯定会较多的选择免费软件.其中使用较多的还是Xshell工具,也是我认为 ...

  10. java入门day03

    控制流程 一:   if else   /    switch 1. 随机数的产生:导入import java.lang.Math; num=Math.random()  -->[0,1); [ ...