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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
javascript Firefox与IE 替换节点的方法
Feb 24 Javascript
js汉字转拼音实现代码
Feb 06 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
利用百度地图API获取当前位置信息的实例
Nov 06 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
js实现随机数小游戏
Jun 28 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
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
PHP中array_merge和array相加的区别分析
2013/06/17 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php实现Mysql简易操作类
2015/10/11 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
js中less常用的方法小结
2017/08/09 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
跟老齐学Python之复习if语句
2014/10/02 Python
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Python子类继承父类构造函数详解
2019/02/19 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
数据库基础的一些面试题
2012/02/25 面试题
土木工程专业大学毕业生求职信
2013/10/13 职场文书
领导接待方案
2014/03/13 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
i7 6700处理器相当于i5几代
2022/04/19 数码科技