js选择并转移导航菜单示例代码


Posted in Javascript onAugust 19, 2014

实现html界面

<!DOCTYPE html>
<html>
<head>
<title>Select and Go Navigation</title>
<script src="script01.js"></script>
<link rel="stylesheet" href="script01.css" rel="external nofollow" >
</head>
<body>
<form action="gotoLocation.cgi" class="centered">
<select id="newLocation">
<option selected>Select a topic</option>
<option value="script06.html">Cross-checking fields</option>
<option value="script07.html">Working with radio buttons</option>
<option value="script08.html">Setting one field with another</option>
<option value="script09.html">Validating Zip codes</option>
<option value="script10.html">Validating email addresses</option>
</select>
<noscript>
<input type="submit" value="Go There!">
</noscript>
</form>
</body>
</html>

实现菜单导航

window.onload = initForm;
window.onunload = function() {};
function initForm() {
document.getElementById("newLocation").selectedIndex = 0;
document.getElementById("newLocation").onchange = jumpPage;
}
function jumpPage() {
var newLoc = document.getElementById ("newLocation");
var newPage = newLoc.options [newLoc.selectedIndex].value;
if (newPage != "") {
window.location = newPage;
}
}

下面是源码分析
1.

window.onload = initForm;
window.onunload = function() {};
在窗口加载时,调用initForm()函数。下一行需要解释一下,因为它是处理某些浏览器的古怪行为的变通方法。

当窗口卸载时(即关闭窗口或者浏览器转到另一个网址),我们调用一个匿名函数(anonymousfunction),即没有名称的函数。在这个示例中,这个函数不但没有名称,而且根本不做任何事情。提供这个函数是因为必须将onunload设置为某种东西,否则,当单击浏览器的back按钮时,就不会触发onload事件,因为在某些浏览器(比如Firefox和Safari)中页面会被缓存。让onunload执行任何操作,就会使页面不被缓存,因此当用户后退时,会发生onload事件。

匿名是指在function和()之间没有名称。这是触发onunload但不让它做任何事情的最简单的方法。与任何函数中一样,花括号包含函数的内容。这里的花括号是空的,因为这个函数不做任何事情。

2.

document.getElementById("newLocation").selectedIndex = 0;
document.getElementById("newLocation").onchange = jumpPage;
在initForm()函数中,第一行获得HTML页面上的菜单(它的id为newLocation),并且将它的selectedIndex属性设置为零,这会使它显示Select a topic。
第二行让脚本在菜单选择发生改变时,调用jumpPage()函数。

3.

var newLoc = document.getElementById("newLocation");
在jumpPage()函数中,newLoc变量查找访问者在菜单中选择的值。

4.

var newPage = newLoc.options[newLoc.selectedIndex].value;
从方括号中的代码开始,向外依次分析。newLoc.selectedIndex是一个从0~5的数字(因为有6
个菜单选项。记住JavaScript的编号常常是基于零的)。得到这个数字之后,接下来获得对应的菜单项
的值,这就是我们希望跳转到的网页的名称。然后,将结果赋值给变量newPage。

5.

if (newPage != "") {
window.location = newPage;
这个条件语句首先检查newPage是否非空。换句话说,如果newPage有一个值,那么让窗口转到
选择的菜单项所指定的URL。

Javascript 相关文章推荐
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
Oct 10 Javascript
angularjs的一些优化小技巧
Dec 06 Javascript
JavaScript实现LI列表数据绑定的方法
Aug 04 Javascript
程序员必知35个jQuery 代码片段
Nov 05 Javascript
微信js-sdk地理位置接口用法示例
Oct 12 Javascript
smartupload实现文件上传时获取表单数据(推荐)
Dec 12 Javascript
HTML的select控件美化
Mar 27 Javascript
基于Vue实现后台系统权限控制的示例代码
Aug 29 Javascript
原生JS控制多个滚动条同步跟随滚动效果
Dec 22 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
Jun 17 Javascript
vuex + keep-alive实现tab标签页面缓存功能
Oct 17 Javascript
详解实现vue的数据响应式原理
Jan 20 Vue.js
js遍历子节点子元素附属性及方法
Aug 19 #Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 #Javascript
用循环或if语句从json中取数据示例
Aug 18 #Javascript
通过jquery 获取URL参数并进行转码
Aug 18 #Javascript
浅谈JavaScript中定义变量时有无var声明的区别
Aug 18 #Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
Aug 18 #Javascript
使用node.js半年来总结的 10 条经验
Aug 18 #Javascript
You might like
关于crontab的使用详解
2013/06/24 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
js post提交调用方法
2014/02/12 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
JS表的模拟方法
2015/02/05 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
python条件和循环的使用方法
2013/11/01 Python
python实现内存监控系统
2021/03/07 Python
Python实现井字棋小游戏
2020/03/09 Python
基于python实现模拟数据结构模型
2020/06/12 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
芬兰攀岩、山地运动和户外活动用品购物网站:Bergfreunde
2016/10/06 全球购物
塔吉特百货公司官网:Target
2017/04/27 全球购物
会话Bean的种类
2013/11/07 面试题
Python如何实现单例模式
2016/06/03 面试题
关键字throw与throws的用法差异
2016/11/22 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
专营店会计助理岗位职责
2013/11/29 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
保安队长职务说明书
2014/02/23 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书