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 相关文章推荐
javascript中[]和{}对象使用介绍
Mar 20 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
Jun 20 Javascript
js验证手机号、密码、短信验证码代码工具类
Jun 24 Javascript
Avalonjs双向数据绑定与监听的实例代码
Jun 23 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
Jun 15 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
Nov 07 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
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
header跳转和include包含问题详解
2012/09/08 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
浅谈node的事件机制
2017/10/09 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python动态加载模块的3种方法
2014/11/22 Python
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
Python多线程原理与用法详解
2018/08/20 Python
Python绘制正余弦函数图像的方法
2018/08/28 Python
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Ray-Ban雷朋瑞典官方网站:全球领先的太阳眼镜品牌
2019/08/22 全球购物
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
车间组长岗位职责
2013/12/20 职场文书
竞职演讲稿范文
2014/01/11 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
毕业生就业协议书
2014/04/11 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
党员民主评议个人总结
2014/10/20 职场文书
硕士毕业论文导师评语
2014/12/31 职场文书
销售经理工作检讨书
2015/02/19 职场文书
新学期主题班会
2015/08/17 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
在Docker容器中部署SQL Server
2022/04/11 Servers