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 相关文章推荐
JQuery中$之选择器用法介绍
Apr 05 Javascript
让新消息在网页标题闪烁提示的jQuery代码
Nov 04 Javascript
提高jQuery性能的十个诀窍
Nov 14 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
jquery实现的动态回到顶部特效代码
Oct 28 Javascript
JavaScript继承学习笔记【新手必看】
May 10 Javascript
浅谈javascript中的Function和Arguments
Aug 30 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
JS实现的字符串数组去重功能小结
Jun 17 Javascript
Vue3为什么这么快
Sep 23 Javascript
JavaScript实现网页留言板功能
Nov 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
农民C键的运用技巧
2020/03/04 星际争霸
在PHP3中实现SESSION的功能(三)
2006/10/09 PHP
php 404错误页面实现代码
2009/06/22 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
layui实现数据分页功能
2019/07/27 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
Python解析json文件相关知识学习
2016/03/01 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
Python运行异常管理解决方案
2020/03/09 Python
基于python实现计算两组数据P值
2020/07/10 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
《广玉兰》教学反思
2014/04/14 职场文书
质量保证书
2015/01/17 职场文书
满月酒邀请函
2015/01/30 职场文书
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python