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高级程序设计 错误处理与调试学习笔记
Sep 10 Javascript
jQuery Tools tab使用介绍
Jul 14 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
Dec 21 Javascript
JavaScript中的Math 使用介绍
Apr 21 Javascript
jQuery操作表单常用控件方法小结
Mar 23 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
通用无限极下拉菜单的实现代码
May 31 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
js实现的xml对象转json功能示例
Dec 24 Javascript
利用pm2部署多个node.js项目的配置教程
Oct 22 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
Mar 23 jQuery
JS实现页面侧边栏效果探究
Jan 08 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中调用JAVA
2006/10/09 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
koa-router源码学习小结
2018/09/07 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
python脚本爬取字体文件的实现方法
2017/04/29 Python
Python request中文乱码问题解决方案
2020/09/17 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
印度民族服装购物网站:BIBA
2019/08/05 全球购物
秋天的雨教学反思
2014/04/27 职场文书
团日活动总结怎么写
2014/06/25 职场文书
物业保安岗位职责
2014/07/02 职场文书
环境卫生倡议书
2014/08/29 职场文书
工作失职检讨书
2015/01/26 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
食堂管理制度范本
2015/08/04 职场文书
早上好问候语大全
2015/11/10 职场文书
学生检讨书范文
2019/06/24 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
Python Django 后台管理之后台模型属性详解
2021/04/25 Python