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>

 

相关文章
|
19天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
34 3
|
16天前
|
监控 前端开发 JavaScript
探索微前端架构:构建可扩展的现代Web应用
【10月更文挑战第29天】本文探讨了微前端架构的核心概念、优势及实施策略,通过将大型前端应用拆分为多个独立的微应用,提高开发效率、增强可维护性,并支持灵活的技术选型。实际案例包括Spotify和Zalando的成功应用。
|
14天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
14天前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
24 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
19天前
|
JavaScript 前端开发 开发者
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第27天】在前端开发领域,Vue.js和Angular是两个备受瞩目的框架。本文对比了两者的优劣,Vue.js以轻量级和易上手著称,适合快速开发小型到中型项目;Angular则由Google支持,功能全面,适合大型企业级应用。选择时需考虑项目需求、团队熟悉度和长期维护等因素。
28 1
|
20天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
19 3
|
20天前
|
前端开发 JavaScript API
前端框架新探索:Svelte在构建高性能Web应用中的优势
【10月更文挑战第26天】近年来,前端技术飞速发展,Svelte凭借独特的编译时优化和简洁的API设计,成为构建高性能Web应用的优选。本文介绍Svelte的特点和优势,包括编译而非虚拟DOM、组件化开发、状态管理及响应式更新机制,并通过示例代码展示其使用方法。
34 2
|
20天前
|
JavaScript 前端开发 API
前端框架对比:Vue.js与Angular的优劣分析与选择建议
【10月更文挑战第26天】前端技术的飞速发展让开发者在构建用户界面时有了更多选择。本文对比了Vue.js和Angular两大框架,介绍了它们的特点和优劣,并给出了在实际项目中如何选择的建议。Vue.js轻量级、易上手,适合小型项目;Angular结构化、功能强大,适合大型项目。
17 1
|
24天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
22 4

热门文章

最新文章

下一篇
无影云桌面