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 Scoping and Hoisting 翻译
Jul 03 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
Oct 11 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
js实现拖拽效果
Feb 12 Javascript
酷炫jQuery全屏3D焦点图动画效果
Mar 22 Javascript
plupload+artdialog实现多平台上传文件
Jul 19 Javascript
js html css实现复选框全选与反选
Oct 09 Javascript
javascript实现复选框全选或反选
Feb 04 Javascript
bootstrap时间插件daterangepicker使用详解
Oct 19 Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
Jul 22 Javascript
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中mt_rand()随机数函数用法
2014/11/24 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
PHP中preg_match正则匹配中的/u、/i、/s含义
2015/04/17 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
windows下Virtualenvwrapper安装教程
2017/12/13 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
Django 请求Request的具体使用方法
2019/11/11 Python
python实现加密的方式总结
2020/01/19 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
银行实习的自我鉴定
2013/12/10 职场文书
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
职工代表大会主持词
2014/04/01 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
投资合作协议书范本
2014/04/17 职场文书
关于教师节的演讲稿
2014/09/04 职场文书