javascript的渐进增强与平稳退化浅谈


Posted in Javascript onNovember 12, 2013

在google.com.hk的左上角,有一个更多的链接,它具有一个目标地址,但是当我们点击时,大多数情况发现的是弹出一个下拉列表供用户选择(这是一种典型的渐进增强形式)。怎么理解?——如果用户的浏览器支持javascript,那么就可以享受到这种快速导航的服务功能。

现在,请你禁用的你的浏览器的javascript功能(不会禁用猛击这里),再次访问google.com.hk,再次点击更多时,发生了什么?是的,没有看到下拉列表,而打开了一个新页面。(这是一种典型的平稳退化)。怎么理解?——如果用户的浏览器不支持javascript,用户仍然能够访问我的网站。

如何实现类似google的这一功能?

<script type="text/javascript">
 function displayMenu() {
    //显示导航列表;
 }
 </script>
 <a href="目标页面" onclick="displayMenu(); return false;">更多»</a>

解释:displayMenu()是一个显示导航列表的功能函数(这里省略它的实现,因为讨论的并不是这个)
onclick指定了链接的点击事件。
return false : 取消了浏览器的默认行为(这样就执行了displayMenu(),而不发生页面的跳转了),这个不可省略(当然你可省略试试看,有助于你的理解)

现在我们来看:如果你的浏览器支持javascript时,那么onclick后的代码肯定会被执行。否则,onclick后的代码不会被执行,那就会发生页面的跳转。这样不管是否支持javascript,用户都能顺利的访问我的网站。

下面是另一个类似的例子,它在新窗口中打开一个链接,但是我们并没有指定target,如果用户的浏览器不支持javascript,它将在当前页面中打开链接,如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>在新窗口打开链接的另一种方式</title>
<script type="text/javascript">
function popup(url) { window.open(url); }
</script>
</head>
<body>
<ul>
    <li><a href="http://www.baidu.com/" onclick="popup(this.href); return false;">百度</a></li>
    <li><a href="http://www.google.com.hk/" onclick="popup(this.href); return false;">google</a></li>
</ul>
</body>
</html>
Javascript 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
js 调整select 位置的函数
Feb 21 Javascript
一个js写的日历(代码部分网摘)
Sep 20 Javascript
jQuery数组处理方法汇总
Jun 20 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
Sep 05 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
js实现键盘Enter键提交表单的方法
May 27 Javascript
js实现模拟银行卡账号输入显示效果
Nov 18 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
Dec 25 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
微信小程序 实例应用(记账)详解
Sep 28 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
Dec 03 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 #Javascript
JavaScript中的字符串操作详解
Nov 12 #Javascript
JavaScript简单实现网页回到顶部功能
Nov 12 #Javascript
判定是否原生方法的JS代码
Nov 12 #Javascript
给文字加上着重号的JS代码
Nov 12 #Javascript
深入理解javascript动态插入技术
Nov 12 #Javascript
在ASP.NET中使用JavaScript脚本的方法
Nov 12 #Javascript
You might like
PHP4实际应用经验篇(8)
2006/10/09 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
python 图片验证码代码
2008/12/07 Python
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
python+opencv实现动态物体追踪
2018/01/09 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
python破解同事的压缩包密码
2020/10/14 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
美国知名艺术画网站:Art.com
2017/02/09 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
硕士研究生个人求职信
2013/12/04 职场文书
商务考察邀请函模板
2015/02/02 职场文书
mysql对于模糊查询like的一些汇总
2021/05/09 MySQL
我的收音机情缘
2022/04/05 无线电