JavaScript 基础问答 四

 二、导航功能增强

1. 下拉菜单中的链接(Links in Select Menu

Q:我如何实现在下拉菜单中链接到不同的页面?

A:要创建一个所示的下拉菜单: 选择一个页面JavaScript FAQNumbersStringsNavigationColorsJavaScripter.net

你可以使用下面的代码:

  1. <form>
  2. <select 
  3. onChange="if(this.selectedIndex!=0)
  4. self.location=this.options[this.selectedIndex].value">
  5. <option value="" selected>Select a page
  6. <option value="startpag.htm">JavaScript FAQ
  7. <option value="numbers.htm">Numbers
  8. <option value="strings.htm">Strings
  9. <option value="navigati.htm">Navigation
  10. <option value="colors.htm">Colors
  11. <option value="http://www.javascripter.net">JavaScripter.net
  12. </select>
  13. </form>

只需要把菜单项及其相应的URL改为你需要就可以了。你可以使用绝对地址(就像http://www.javascripter.net),也可以使用相对地址(像 mypage.htm)。

2.  按钮链接(Button Links

Q:我怎么才能把一个按钮变为指向另外一个页面的超链接呢?

A:要创建一个按钮就像一个:

你可以使用这段代码:

  1. <form> 
  2. <input type=button 
  3. value="insert button text here"
  4. onClick="self.location='Your_URL_here.htm'">
  5. </form>

只需要改为你需要的按钮文本和目标地址。试一下这个:

你可以使用绝对地址(像http://www.javascripter.net)也可以使用相对地址(像mypage.htm)。

3.  后退按钮(Back Button

Q:我能让按钮像浏览器的“后退”按钮一样吗?

A:要创建你自己的后退按钮,可以使用这段代码:

  1. <form>
  2. <input type=button value="Back"
  3. onCLick="history.back()">
  4. </form>

现在试一下:

4. 前进按钮(Forward Button

Q:我能让按钮像浏览器中的“前进”按钮一样吗?

A:要创建自己的“前进”按钮,使用这段代码:

  1. <form>
  2. <input type=button value="Forward"
  3. onCLick="history.forward()">
  4. </form>

如果浏览器上的前进按钮当前不可用,那么这个“前进”按钮同样不能工作。这种情况就是当前页是你浏览历史中的最后一页。换句话说,如果你是使用浏览器的“后退”按钮到达的这个页面(或者脚本编写的后退按钮),那么这个前进按钮就可以工作。现在试一下吧!

5. 查询字符串(Query Stirngs

Q:我的脚步可以访问当前URL中的查询字符串吗?

A:查询字符串(或搜索字符串)是URL中的一个可选部分,它跟在文件名后面,以问号引导(?)。例如,下面的URL在HTML文件名后包含了一个查询字符串 ?myquery:

http://www.myfirm.com/file.html?myquery

你的脚本可以使用JavaScript的location.search属性访问当前URL中的查询字符按。点击下面按钮试一下看看!(为了查看地址中的URL,你可能想要在顶层浏览器窗口中显示这个页面。)

创建这些按钮的代码是:

  1. <form>
  2. <input type=button value="Add query ?test"  
  3. onClick="selfself.location=
  4. self.location.protocol+'//'
  5. +self.location.host
  6. +self.location.pathname+'?test'">
  7. <input type=button value="Show query" 
  8. onClick="alert('Query string: '+self.location.search)">
  9. <input type=button value="Remove query" 
  10. onClick="selfself.location=
  11. self.location.protocol+'//'
  12. +self.location.host
  13. +self.location.pathname">
  14. </form>

注意:查询字符串有时候可能不会如预期一样的工作。例如,如果你将这个页面保存本地磁盘上,上面在Internet Explorer 4.x就不会工作(但是在Netscape Navigator中依然有效)。

6. 向页面传递参数(Passing parameters to a page

Q:我可以从也页面向另外一个页面传递参数吗?

A:可以。有几种不同的方式可以实现:

function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}

  • 把参数保存在cookie
  • 把参数保存在另外一个窗口或框架的变量中
  • 把参数存在可以修改的属性top.name(浏览器窗口的名字)中
  • 把参数作为一个查询字符串拼接在目标页面的URL后面

这里是一个简单的例子来演示所有这些传递参数的方法。传递的值应该是字符换“It_worked”。当你点击下面的按钮时,按钮的事件脚本会存在这些值(1)在名为parm_value的cookie中,(2)以顶层变量top.parm_value保存以及(3)在top.name属性中。然后,脚本引导浏览器到parm_get.htm,它的URL包含一个值为URL编码的查询字符串。

7. 查找文本(Searching for text

Q:我怎样在页面查询一个特定的文本字符串?

A:在Netscape Navigator 4.x中,可以使用window.find(string) 方法查找;参见查找对话框。在Internet Explorer 4.x或更新版本中,创建一个文本范围对象(下面的例子中是TRang),然后使用TRang.findText(string)。

示例:下面的脚本根据用户输入的文本查找并在页面上高亮显示。

这个示例的代码为:

  1. <form name="f1" action="" 
  2. onSubmit="if(this.t1.value!=null && this.t1.value!='')
  3. findString(this.t1.value);return false"
  4. >
  5. <input type="text" name=t1 value="" size=20>
  6. <input type="submit" name=b1 value="Find">
  7. </form>
  8. <script language="JavaScript">
  9. <!--
  10. var TRange=null
  11. function findString (str) {
  12. if (parseInt(navigator.appVersion)<4) return;
  13. var strFound;
  14. if (navigator.appName=="Netscape") {
  15. // NAVIGATOR-SPECIFIC CODE
  16. strFound=self.find(str);
  17. if (!strFound) {
  18. strFound=self.find(str,0,1)
  19. while (self.find(str,0,1)) continue
  20. }
  21. }
  22. if (navigator.appName.indexOf("Microsoft")!=-1) {
  23. // EXPLORER-SPECIFIC CODE
  24. if (TRange!=null) {
  25. TRange.collapse(false)
  26. strFound=TRange.findText(str)
  27. if (strFound) TRange.select()
  28. }
  29. if (TRange==null || strFound==0) {
  30. TRange=self.document.body.createTextRange()
  31. strFound=TRange.findText(str)
  32. if (strFound) TRange.select()
  33. }
  34. }
  35. if (!strFound) alert ("String '"+str+"' not found!")
  36. }
  37. //-->
  38. </script>

(0)

相关推荐

  • JavaScript 基础问答 四

     二.导航功能增强 1. 下拉菜单中的链接(Links in Select Menu) Q:我如何实现在下拉菜单中链接到不同的页面? A:要创建一个所示的下拉菜单: 选择一个页面JavaScript FAQNumbersStringsNavigationColorsJavaScripter.net 你可以使用下面的代码: <form> <select  onChange="if(this.selectedIndex!=0) self.location=this.options[

  • JavaScript 基础问答一

    今天在网上看到了一份很不错的JavaScript FAQ,由于担心自己并不能一直把它读完,所以就尝试翻译一些内容,和朋友们一起分享.        FAQ原地址:http://www.javascripter.net/faq/index.htm 一.常见问题 jsTxt=""; validChars="0123456789+-*/().Ee \r\n"; function isValid(str) { for (k=0;k 1.关于这个FAQ(About this

  • JavaScript 基础问答三

    9. JavaScript的注释(Comments in JavaScript) Q:我如何在JavaScript代码中插入注释? A:JavaScript支持三种不同类型的注释: 多行C样式的注释. 包括在/* 和 */ 内的内容都是注释,例如: /* This is a comment */ /* C-style comments can span as many lines as you like, as shown in this example */ C++样式的单行注释.这些注释以/

  • JavaScript 基础问答二

    4. JavaScript的局限性(JavaScript Lminitations) Q:JavaScript程序不能做什么? A:JavaScript代码不能做下列事情: 不能使用用户系统上或者客户端局域网中的打印机或者其他设备. (解决方法,见打印JavaScript输出.) 不能直接访问用户系统或者客户端局域网中的文件:唯一例外就是可以访问浏览器的Cookie文件. (解决方法,见文件访问部分.) 不能直接访问Web服务器上的文件. (解决方法,见文件访问部分.) 实现多重处理或多线程.

  • Javascript基础学习笔记(菜鸟必看篇)

    什么是变量? 变量是用于存储信息的容器 变量的声明 语法: var 变量名 变量名 = 值; 变量要先声明再赋值 变量可以重复赋值 变量的命名规则 变量必须以字母开头: 变量也能以$和_符号开头(不过我们不推荐这么做): 变量名称对大小写敏感(a和A是不同的变量). 语句 语句以一个分号结尾:如果省略分号,则由解析器确定语句的结尾. 有个好的编码习惯,都要以 ; 结尾 数据类型 在JavaScript中,一段信息就是一个值(value).值有不同的类型,大家最熟悉的类型是数字.字符串(strin

  • JavaScript基础知识点归纳(推荐)

    定义在函数外的变量一定是全局变量:定义在函数内的变量,如果声明了var,那该变量就是局部变量,如果不声明var,那么该变量就是全局变量. 1.全局变量与局部变量 JavaScript var global = "Global"; test(); function test(){ var local = "Local"; document.writeln(global); document.writeln(local); } document.writeln(glob

  • JavaScript基础教程——入门必看篇

    JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题. 一. JavaScript 1.什么是JavaScript JavaScript是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具有安全性的脚本语言. 2.JavaScript的特点 JavaScript主要用来向HTML页面添加交互行为. JavaS

  • JavaScript基础之AJAX简单的小demo

    AJAX AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. function prepareForms() { for(var j=0 ; j<document.forms.length ; j++){ var this_forms = document.forms[j]; rese

  • JavaScript基础篇(3)之Object、Function等引用类型

    阅读目录 Object类型 1.通过构造函数来创建 2.通过字面量表示法来创建对象 Array类型 同样Array也有两种创建方式: 如果我们想要打印数组中所有的值,直接打印数组的变量名就可以: 往数组添值: 栈方法.队列方法:  关于数组的排序:  数组的一些操作方法: 查找位置方法 迭代方法 归并方法 Date类型 RegExp类型 Function类型 三种表示法: 方法重载 函数内部属性(arguments 和 this) 基本包装类型 浏览器的内置对象 URI 编码方法 总结 我们在<

  • 温习Javascript基础语法之词法结构

    前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javascript工程师.前端入门容易精通难,说的是前端,更指的是javascript.本文是javascript基础语法的第一篇--词法结构 与java关系 关于javascript有这样一个说法,java和javascript的关系是雷锋和雷锋塔的关系.那到底有没有关系呢 javascript最开始的名字

随机推荐