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 相关文章推荐
弹出广告特效(一个IP只弹出一次)的代码
Jul 27 Javascript
JQUERY THICKBOX弹出层插件
Aug 30 Javascript
javascript 有趣而诡异的数组
Apr 06 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
Mar 10 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
javascript 面向对象实战思想分享
Sep 07 Javascript
在vue中实现简单页面逆传值的方法
Nov 27 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 Javascript
electron中使用bootstrap的示例代码
Nov 06 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
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/01/05 PHP
PHP 文件编程综合案例-文件上传的实现
2013/07/03 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
PHP7内核之Reference详解
2019/03/14 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
Jquery解析Json格式数据过程代码
2014/10/17 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
高级Java程序员面试要点
2013/08/02 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
精彩的推荐信范文
2013/11/26 职场文书
医院实习接收函
2014/01/12 职场文书
户籍证明的格式
2014/01/13 职场文书
水毁工程实施方案
2014/04/01 职场文书
女生抽烟检讨书
2014/10/05 职场文书
学生检讨书如何写
2014/10/30 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技