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 相关文章推荐
asp javascript 实现关闭窗口时保存数据的办法
Nov 24 Javascript
JS图片预加载 JS实现图片预加载应用
Dec 03 Javascript
JS定义回车事件(实现代码)
Jul 08 Javascript
js自定义鼠标右键的实现原理及源码
Jun 23 Javascript
JavaScript中的数组特性介绍
Dec 30 Javascript
JavaScript中匿名函数用法实例
Mar 23 Javascript
Jquery Ajax Error 调试错误的技巧
Nov 20 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
Jul 22 Javascript
修改Jquery Dialog 位置的实现方法
Aug 26 Javascript
Base64(二进制)图片编码解析及在各种浏览器的兼容性处理
Feb 09 Javascript
微信小程序之GET请求的实例详解
Sep 29 Javascript
JS前端可扩展的低代码UI框架Sunmao使用详解
Jul 23 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
php与php MySQL 之间的关系
2009/07/17 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
2015/11/04 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
Vue infinite update loop的问题解决
2019/04/23 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
python的依赖管理的实现
2019/05/14 Python
Django工程的分层结构详解
2019/07/18 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
浅析Python 多行匹配模式
2020/07/24 Python
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
大众服装店创业计划书范文
2014/01/01 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
二审代理词范文
2015/05/25 职场文书
孔繁森观后感
2015/06/10 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
php将xml转化对象的实例详解
2021/11/17 PHP
virtualenv隔离Python环境的问题解析
2022/06/21 Python