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使用过程中需要注意的地方和一些基本语法
Aug 26 Javascript
jQuery 表单验证扩展(三)
Oct 20 Javascript
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
AngularJS中isolate scope的用法分析
Nov 22 Javascript
如何学JavaScript?前辈的经验之谈
Dec 28 Javascript
Vue实战之vue登录验证的实现代码
Oct 31 Javascript
AngularJs分页插件使用详解
Jun 30 Javascript
详解vue axios用post提交的数据格式
Aug 07 Javascript
javascript实现摄像头拍照预览
Sep 30 Javascript
element-ui table组件如何使用render属性的实现
Nov 04 Javascript
jquery实现穿梭框功能
Jan 19 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字符串过滤与替换小结
2015/01/26 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
Laravel find in set排序实例
2019/10/09 PHP
很可爱的输入框
2008/08/03 Javascript
传智播客学习之java 反射
2009/11/22 Javascript
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
2016/07/22 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
[00:35]可解锁地面特效
2018/12/20 DOTA
Python下载指定页面上图片的方法
2016/05/12 Python
Python 多线程实例详解
2017/03/25 Python
python利用tkinter实现屏保
2019/07/30 Python
pymysql 开启调试模式的实现
2019/09/24 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
设计模式的基本要素是什么
2014/04/21 面试题
值传递还是引用传递
2015/02/08 面试题
银行办公室岗位职责
2014/03/10 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS