最常用的方式是使用<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. 记一次tomcat运行起来了但是项目没起来的问题

    解决办法是: 先是tomcat的conf文件夹下的servel.xml中这两个值改成false. 然后重新运行maven的package打包,再运行项目就行了.

  2. React 的组件与 this.props对象

    1.组件 React 允许将代码封装成组件,然后像插入普通 HTML 标签一样,在网页中插入这个组件.React.createClass 的方法就是用于生成一个组件类. 2.this.props对象 ...

  3. js中字节B转化成KB,MB,GB

    function change(limit){ var size = ""; if(limit < 0.1 * 1024){ //小于0.1KB,则转化成B size = l ...

  4. editorconfig使用

    //是否是顶级配置文件,设置为true的时候才会停止搜索.editorconfig文件 root = true [*] //缩进方式tab" | "space indent_sty ...

  5. Android开发笔记---adb命令

    adb命令的使用: adb shell命令:pm list packages -f:显示包名称及相应的APK文件

  6. with的上下文管理

    1.with with语句是在Python2.6中出现的新语句.在Python2.6以前要正确的处理涉及到异常的资源管理时,需要使用try/finally代码结构.如要实现文件在操作出现异常时也能正确 ...

  7. Struts中的匹配规则

    <constant name="struts.action.extension" value="action,do,htm"/> 表示之后后缀名为a ...

  8. Ubuntu16.04 ionic(jdk,sdk,gradle)环境搭建完全攻略

    在Ubuntu16.04当中搭建一个ionic环境还是按照官方教程的来,主要问题是首先要把JDK,SDK搭好,环境变量配好.本文中给的包的下载请不要直接用浏览器下载,很慢,尽量用wget 下载,重要的 ...

  9. ECharts柱状图

    首先我们要先去Echarts 官网 根据自己需要的版本进行下载下载 下载完成后,我们在项目中引入echarts 随后创建容器来存放我们要添加的柱状图 容器创建完毕我们需要在js中设置他的属性和值 此配 ...

  10. JAVAEE 第六周

    JSF 生命周期: FacesServlet 充当用户和 JSF 应用程序之间的纽带.它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作. 1.   当JSF页面上的一个事 ...