实现 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"><select id = "newLocation"> <opção selecionada> Selecione um tópico </pption> <option value = "script06.html"> campos de verificação cruzada </pption> <opção value = "script07.html"> funcionando com botões de rádio </pption> <option value = "script08.html"> set um campo com outro <//option> Códigos </pption> <opção value = "script10.html"> validando endereços de email </pption> </select> <oscript> <input type = "submit" value = "vá lá!"> </oscript> </mand> </body> </html>
实现菜单导航
window.onload = initform; window.onunload = function () {}; function initform () {document.getElementById ("newLocation"). SelectedIndex = 0; document.getElementById ("newLocation"). [newloc.SelectedIndex] .Value; if (newPage! = "") {window.Location = newPage;}}下面是源码分析
1.
window.onload = initForm;
window.onunload = function () {};
在窗口加载时 , 调用 initform () 函数。下一行需要解释一下 , 因为它是处理某些浏览器的古怪行为的变通方法。 因为它是处理某些浏览器的古怪行为的变通方法。
当窗口卸载时(即关闭窗口或者浏览器转到另一个网址),我们调用一个匿名函数(anonymousfunction),即没有名称的函数。在这个示例中,这个函数不但没有名称,而且根本不做任何事情。提供这个函数是因为必须将onunload设置为某种东西,否则,当单击浏览器的back按钮时,就不会触发onload事件,因为在某些浏览器(比如Firefox和Safari)中页面会被缓存。让onunload执行任何操作,就会使页面不被缓存,因此当用户后退时,会发生onload事件。
匿名是指在 função 和 () 之间没有名称。这是触发 Onunload 但不让它做任何事情的最简单的方法。与任何函数中一样 , 花括号包含函数的内容。这里的花括号是空的 , 因为这个函数不做任何事情。
2.
document.getElementById ("newLocation"). SelectedIndex = 0;
document.getElementById ("newLocation"). OnChange = jumpage;
在 initform () 函数中 , 第一行获得 html 页面上的菜单 (它的 id 为 newlocation) , 并且将它的 SelectedIndex 属性设置为零 , 这会使它显示 Selecione um tópico。
第二行让脚本在菜单选择发生改变时 , 调用 jumpage () 函数。
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。