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中继承的三种方式
Oct 16 Javascript
随窗体滑动的小插件sticky源码
Jun 21 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
Mar 01 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
Mar 21 jQuery
Webpack如何引入bootstrap的方法
Jun 17 Javascript
node+express+ejs使用模版引擎做的一个示例demo
Sep 18 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
Jan 31 Javascript
模块化react-router配置方法详解
Jun 03 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
layui表格内放置图片,并点击放大的实例
Sep 10 Javascript
Echarts实现单条折线可拖拽效果
Dec 19 Javascript
Vue事件处理原理及过程详解
Mar 11 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配置文件中最常用四个ini函数
2007/03/19 PHP
php数组总结篇(一)
2008/09/30 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[13:16]INFAMOUS vs VGJ T BO3
2018/06/07 DOTA
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
浅析Python的命名空间与作用域
2020/11/25 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
Why do we need Unit test
2013/01/03 面试题
基层党组织公开承诺书
2014/03/28 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
小人国观后感
2015/06/11 职场文书
导游词之麻姑仙境
2019/11/18 职场文书