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 监听textarea中按键事件
Oct 08 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
Vue.js每天必学之构造器与生命周期
Sep 05 Javascript
详解jQuery的Cookie插件
Nov 23 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
浅谈js中的this问题
Aug 31 Javascript
JS实现点击链接切换显示隐藏内容的方法
Oct 19 Javascript
详解create-react-app 自定义 eslint 配置
Jun 07 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 Javascript
js实现浏览器打印功能的示例代码
Jul 15 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 学习资料零碎东西
2010/12/04 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python实现控制台输入密码的方法
2015/05/29 Python
python requests 测试代理ip是否生效
2018/07/25 Python
python调用摄像头显示图像的实例
2018/08/03 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
利用python进行文件操作
2020/12/04 Python
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
小学亲子活动总结
2014/07/01 职场文书
村官个人总结范文
2015/03/03 职场文书
2015年个人审计工作总结
2015/04/07 职场文书
专项资金申请报告
2015/05/15 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
解析目标检测之IoU
2021/06/26 Python