web前端学习(四十五)——JavaScript BOM-Location对象、BOM-Cookie实例

1.BOM-Location对象

Location 对象包含有关当前 URL 的信息。

Location 对象是 window 对象的一部分,可通过 window.Location 属性对其进行访问。

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。window.location 对象在编写时可不使用 window 这个前缀。

属性 描述
hash 返回一个URL的锚部分
host 返回一个URL的主机名和端口
hostname 返回URL的主机名
href 返回完整的URL
pathname 返回的URL路径名。
port 返回一个URL服务器使用的端口号
protocol 返回一个URL协议
search 返回一个URL的查询部分
方法 说明
assign() 载入一个新的文档
reload() 重新载入当前文档
replace() 用新的文档替换当前文档

1.1 Location对象属性 

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<title>JS简单学习</title>
	</head>
	
	<body>
		<script type="text/javascript">
			document.write("获取URL的主机名:" + location.hostname + "<br />");
			document.write("获取URL的端口号:" + location.port + "<br />");
			document.write("获取URL的主机名和端口号:" + location.host + "<br />");
			document.write("获取完整的URL:" + location.href + "<br />");
			document.write("获取URL的路径名:" + location.pathname + "<br />");
			document.write("获取URL的一个协议:" + location.protocol + "<br />");
		</script>
	</body>
</html>

1.2 Location对象方法

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>JS简单学习</title>
		<script type="text/javascript">
			function newDoc() {
				window.location.assign("https://www.tencent.com");
			}
			function reloadDoc() {
				location.reload();
			}
			function replaceDoc() {
				window.location.replace("https://www.baidu.com");
			}
		</script>
	</head>
	
	<body>
		<input type="button" value="载入新文档" onclick="newDoc()" /><br /><br />
		<input type="button" value="重新加载页面" onclick="reloadDoc()" /><br /><br />
		<input type="button" value="载入新文档替换当前页面" onclick="replaceDoc()" />
	</body>
</html>


2.BOM-Cookie

Cookie 是一些数据, 存储于你电脑上的文本文件中。Cookie 用于存储 web 页面的用户信息。

当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。

Cookie 的作用就是用于解决 "如何记录客户端的用户信息":

  • 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。

Cookie 以名/值对形式存储,如下所示:

username=John Doe

当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。服务端通过这种方式来获取用户的信息。

2.1 使用JS创建Cookie的几种方式

JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

JavaScript 中,创建 cookie 如下所示:

document.cookie="username=John Doe";

还可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除:

document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";

也可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。

document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

2.2 使用JS读取Cookie

在 JavaScript 中, 可以使用以下代码来读取 cookie:

var x = document.cookie;

2.3 使用JS修改Cookie

在 JavaScript 中,修改 cookie 类似于创建 cookie,如下所示:

document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

旧的 cookie 将被覆盖。

2.4 使用JS删除Cookie

删除 cookie 非常简单。您只需要设置 expires 参数为以前的时间即可,如下所示,设置为 Thu, 01 Jan 1970 00:00:00 GMT:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

注意,当删除时不必指定 cookie 的值。

2.5 小实例 

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>JS简单学习</title>
		<script type="text/javascript">
			function setCookie(cname,cvalue,exdays) {
				var d = new Date();
				d.setTime(d.getTime() + (exdays*24*60*60*1000));
				var expires = "expires=" + d.toGMTString();
				document.cookie = cname + "=" + cvalue + "; " + expires;
			}
			function getCookie(cname) {
				var name = cname + "=";
				var ca = document.cookie.split(';');
				for(var i=0;i<ca.length;i++) {
					var c = ca[i].trim();
					if(c.indexOf(name)==0) { 
						return c.substring(name.length,c.length); 
					}
				}
				return "";
			}
			function checkCookie() {
				var user=getCookie("username");
				if(user!="") {
					alert("欢迎 " + user + " 再次访问");
				}else {
					user = prompt("请输入你的名字:","");
			  		if(user!="" && user!=null) {
			    		setCookie("username",user,30);
			    	}
				}
			}
		</script>
	</head>
	
	<body onload="checkCookie()"></body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_43823808/article/details/114163999