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 相关文章推荐
JS Timing
Apr 21 Javascript
19个很有用的 JavaScript库推荐
Jun 27 Javascript
js Html结构转字符串形式显示代码
Nov 15 Javascript
JS(JQuery)操作Array的相关方法介绍
Feb 11 Javascript
node.js中的fs.realpath方法使用说明
Dec 16 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 Javascript
JS 数字转换为大写金额的简单实例
Aug 04 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 Javascript
如何使用JS console.log()技巧提高工作效率
Oct 14 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
36个正则表达式(开发效率提高80%)
Nov 17 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
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
四个PHP非常实用的功能
2015/09/29 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
Yii视图操作之自定义分页实现方法
2016/07/14 PHP
js CSS操作方法集合
2008/10/31 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
深入理解JavaScript系列(27):设计模式之建造者模式详解
2015/03/03 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
jQuery实现表格隔行换色
2018/09/01 jQuery
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Django为窗体加上防机器人的验证码功能过程解析
2019/08/14 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
初一地理教学反思
2014/01/16 职场文书
上级检查欢迎词
2014/01/18 职场文书
2014新年寄语
2014/01/20 职场文书
教学实验楼管理制度
2014/02/01 职场文书
家长会欢迎标语
2014/06/24 职场文书
大学毕业生自我评价
2015/03/02 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
Javascript之datagrid查询详解
2021/09/15 Javascript