最常用的方式是使用<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. 微信小程序-列表渲染多层嵌套循环

    微信小程序-列表渲染多层嵌套循环 入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉. <view wx:for= ...

  2. win7安装loadrunner 安装相关问题解决方案

    安装loadrunner缺少2.8 sp1组件解决方案 这是因为注册表缺少FullInstallVer和Version,归根到底是madc安装的的问题 以下是解决方法: 1.运行regedit,打开注 ...

  3. 调试内核打印debugfs

    新年第一天更博.这么勤劳我一定是小仙女`_>` 前几天调试时候,因为处理速度问题,师父给的建议是把应用中不重要的打印删掉.内核中也不要直接用printk,可以把想查看的数据通过debugfs来查 ...

  4. Spring Websocket实现简易在线聊天功能

    针对Spring Websocket的实现,我参照了其他博主的文章https://www.cnblogs.com/leechenxiang/p/5306372.html 下面直接给出实现: 一.引入相 ...

  5. 如何练习打字之用英文写文章 & 如何调养右手之用左手握鼠标

    part1:how to practise your typing via writing a English blog it's easy to write english for chinese. ...

  6. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于“QT + OpenCV + MinGW在windows下配置开发环境”着实让人头疼,单次配置时间相当长,也十分不容易,本人第一次配置成 ...

  7. Postgresql插入或更新操作upsert

    幂等性的一个要求是多次操作的结果一致.对于update操作,多次直接的结果都是最后update的值,是满足需求的. 但对于insert,如果已经插入,第二次会报错,duplicate error, 主 ...

  8. 编码 decode & encode

    import sys # python3 中字符编码默认为 utf-8 s = '你好' print(s) # utf-8 转为 gbk (s 默认为 unicode 所以可以直接 encode 成 ...

  9. bzoj1668

    题解: 简单dp 注意最后往后面多取几个 求个最小值 代码: #include<bits/stdc++.h> using namespace std; ; int n,m,f[N],a[N ...

  10. Mysql 源码:关于innodb中两次写的探索

    转载自:http://www.cnblogs.com/bamboos/p/3553703.html?utm_source=tuicool&utm_medium=referral 两次写可以说是 ...