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 相关文章推荐
用js+xml自动生成表格的东西
Dec 21 Javascript
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
Feb 23 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
May 26 Javascript
js 事件处理函数间的Event物件是否全等
Apr 08 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
May 13 Javascript
解析预加载显示图片艺术
Dec 05 Javascript
详解JS去重及字符串奇数位小写转大写
Dec 29 Javascript
原生JS京东轮播图代码
Mar 22 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
微信小程序发布新版本时自动提示用户更新的方法
Jun 07 Javascript
vue 使用lodash实现对象数组深拷贝操作
Sep 10 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实现的连贯操作、链式操作实例
2014/07/08 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
JavaScript模拟实现封装的三种方式及写法区别
2017/10/27 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
2018/08/22 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
Python去掉字符串中空格的方法
2014/03/11 Python
使用python实现省市三级菜单效果
2016/01/20 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
python生成ppt的方法
2018/06/07 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
Django 限制访问频率的思路详解
2019/12/24 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python复合条件下的字典排序
2020/12/18 Python
英国探险旅游专家:Explore
2018/12/20 全球购物
如何保障Web服务器安全
2014/05/05 面试题
初三学习计划书范文
2014/04/30 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
事业单位聘任报告
2015/03/02 职场文书
初中班长竞选稿
2015/11/20 职场文书
Python绘画好看的星空图
2022/03/17 Python
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏