如何通过地址栏传递参数及获得参数

  • Post author:
  • Post category:其他


在通过地址栏进行参数的传递及取值时,首先应该了解一下

URL


的组成部分及其每部分的取得方法和作用说明:

URL




:


统一资源定位符


(Uniform Resource Locator, URL)

完整的

URL


由这几个部分构成:


scheme://host:port/path?query#fragment


scheme:

通信协议

常用的通信协议有:http,ftp,maito



host:

主机

服务器

(


计算机


)


域名系统


(DNS)


主机名或


IP


地址。


port:

端口号

整数,可选,省略时使用方案的默认端口,如

http


的默认端口为


80




path:

路径

由零或多个

“/”


符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。


query:

查询

可选,用于给动态网页(如使用

CGI





ISAPI





PHP/JSP/ASP/ASP.NET


等技术制作的网页)传递参数,可有多个参数,用


“&”


符号隔开,每个参数的名和值用


“=”


符号隔开。


fragment:

信息片断

字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用

fragment


直接定位到某一名词解释。


(


也称为锚点


.)

对于这样一个

URL





http://www.jbxue.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

可以用

javascript


获得其中的各个部分。


1




window.location.href

整个

URl


字符串


(


在浏览器中就是完整的地址栏


)

本例返回值

: http://www.jbxue.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere


2




window.location.protocol

URL

的协议部分

本例返回值

:http:


3




window.location.host

URL

的主机部分

本例返回值

:www.jbxue.com


4




window.location.port

URL

的端口部分

如果采用默认的

80


端口


(update:


即使添加了


:80)


,那么返回值并不是默认的


80


而是空字符

本例返回值

:””


5




window.location.pathname

URL

的路径部分


(


就是文件地址


)

本例返回值

:/fisker/post/0703/window.location.html


6




window.location.search

查询

(


参数


)


部分

除了给动态语言赋值以外,我们同样可以给静态页面

,


并使用


javascript


来获得相信应的参数值

本例返回值

:?ver=1.0&id=6


7




window.location.hash

锚点

本例返回值

:#imhere


那么就可以用这个方法取到指定参数

以下则通过一个实例来进行对通过地址栏传递参数及取值的了解。

如果要通过

URL


进行传值


.

则需要把要传递的信息接在

URL




,如:

post.html

<html>

<head>

<meta charset=”GBK”/>

<title></title>

<script>

function post(){

var url = “read.html?name=”+escape(document.all.name.value);

url +=”&password=”+escape(document.all.password.value);

window.location = url ;

};

</script>

</head>

<body>

姓名

:<input type=”text” name=”name”/><br/>

密码

:<input type=”text” name=”password”/><br/>

<input type=”button” value=”post” onClick=”post()”/>

</body>

</html>

在把参数接在

URL


后,这时就需要对地址栏里的参数进行取值并且将其输出,具体实现方法如下:

read.html

<html>

<head>

<title></title>

<script>

window.onload = function(){

var url = window.location.search;

var request = new Object();

if(url.indexOf(“?”)!=-1){  <!–判断是否存在,如果返回-1,则表明不存在–>

var str = url.substr(1);   <!–从第1个字符开始截取–>

var strs = str.split(“&”);·<!–表示以“&’”为分隔符进行分隔,返回的是一个数组–>

for(var i=0;i<strs.length;i++){

request[strs[i].split(“=”)[0]]=unescape(strs[i].split(“=”)[1]);

}

}

alert(“name=”+request[“name”]);

alert(“password=”+request[“password”]);

};

</script>

</head>

<body><body>

</html>



版权声明:本文为u010933680原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。