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

简介: 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>

 

相关文章
|
8天前
|
JavaScript
JS 获取对象数据类型的键值对的键与值
JS 获取对象数据类型的键值对的键与值
|
10天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
3天前
|
JavaScript
【Js】检查Date对象是否为Invalid Date
【Js】检查Date对象是否为Invalid Date
6 0
|
4天前
|
存储 JavaScript 前端开发
JavaScript的引用数据类型主要包括对象
【4月更文挑战第16天】JavaScript的引用数据类型主要包括对象
16 4
|
4天前
|
前端开发 搜索推荐 数据安全/隐私保护
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
HTML标签详解 HTML5+CSS3+移动web 前端开发入门笔记(四)
14 1
|
4天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
5天前
|
前端开发 JavaScript vr&ar
前端新技术探索:WebAssembly、Web Components与WebVR/AR
【4月更文挑战第12天】WebAssembly、Web Components和WebVR/AR正重塑Web应用的未来。WebAssembly允许C/C++等语言在Web上高效运行,提供接近原生的性能,如游戏引擎。Web Components通过Custom Elements和Shadow DOM实现可复用的自定义UI组件,提升模块化开发。WebVR/AR(现WebXR)则让VR/AR体验无需额外应用,直接在浏览器中实现。掌握这些技术对前端开发者至关重要。
13 3
|
7天前
|
JavaScript 前端开发
【掰开揉碎】JavaScript状态机的应用场景与实例(二)
【掰开揉碎】JavaScript状态机的应用场景与实例(二)
|
7天前
|
前端开发 JavaScript 测试技术
【掰开揉碎】JavaScript状态机的应用场景与实例(一)
【掰开揉碎】JavaScript状态机的应用场景与实例(一)
|
8天前
|
JavaScript