JavaScript window.location对象

2023-11-16

http://www.cnblogs.com/ljan/archive/2012/02/27/2369960.html 

location 地址对象 它描述的是某一个窗口对象所打开的地址。要表示当前窗口的地址,只需要使用“location”就行了;若要表示某一个窗口的地址,就使用“<窗口对象>.location”。

注意 属于不同协议或不同主机的两个地址之间不能互相引用对方的 location 对象,这是出于安全性的需要。例如,当前窗口打开的是“www.a.com”下面的某一页,另外一个窗口(对象名为:bWindow)打开的是“www.b.com”的网页。如果在当前窗口使用“bWindow.location”,就会出错:“没有权限”。这个错误是不能用错误处理程序(Event Handler,参阅 onerror 事件)来接收处理的。

示例

URL:http://b.a.com:88/index.php?name=kang&when=2011#first

     
protocol: 协议 "http:"
hostname: 服务器的名字 "b.a.com"
port: 端口 "88"
pathname: URL中主机名后的部分 "/index.php"
search: "?"后的部分,又称为查询字符串 "?name=kang&when=2011"
hash: 返回"#"之后的内容 "#first"
host: 等于hostname + port "b.a.com:88"
href: 当前页面的完整URL "http://www.a.com:88/index.php?name=kang&when=2011#first"

window.location和document.location互相等价的,可以交换使用

location的8个属性都是可读写的,但是只有href与hash的写才有意义。例如改变location.href会重新定位到一个URL,而修改location.hash会跳到当前页面中的anchor(<a id="name">或者<div id="id">等)名字的标记(如果有),而且页面不会被重新加载

注意

URL:http://b.a.com:88/index.php?name=kang&how=#when=2011#first

search: "?name=kang&how=" 第一个"?"之后
hash: "#when=2011#first" 第一个"#"之后的内容
方法location.assign( url ) location.assign('http://www.baidu.com'); 等同于 window.location = 'http://www.baidu.com'
这种方式会讲新地址放到浏览器历史栈中,意味着转到新页面后“后退按钮”仍可以回到该页面。 location.replace( url ) 与assign方法一样,但会从浏览器历史栈中删除本页面,也就是说跳转到新页面后“后退按钮”不能回到该页面。目前IE、Chrome只是简单的跳转,只有Firefox会删除本页面的历史记录。 location.reload( force ) 重新载入当前页面。force为true时从服务器端重载;false则从浏览器缓存中重载,默认值false。
 
reload 方法,该方法强迫浏览器刷新当前页面。
语法: location.reload([bForceGet])

参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")

replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL。
语法: location.replace(URL)
在 实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload() 或者是 history.go(0) 来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method="post"的时候,会出现“网页过期”的提示。那是因为Session的安全 保护机制。可以想到: 当调用 location.reload() 方法的时候, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。如果有这种应用: 我们需要重新加载该页面,也就是说我们期望页面能够在服务端重新被创建, 我们期望是 Not IsPostback 的。这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写: location.replace(location.href)

下面是相关的应用与知识点:
window.location.href
window.top.location.replace("http://www.jb51.net")
top.location.href("http://www.jb51.net")
window.navigate ("http://www.jb51.net")
Html:
<meta http-equiv="Refresh" content="0; url=http://baidu.com/" >
---------------------------------------
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.jb51.net:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

我们可以用javascript获得其中的各个部分
1, window.location.href
整个URl字符串(在浏览器中就是完整的地址栏)
本例返回值: http://www.jb51.net: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.jb51.net
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript window.location对象 的相关文章

  • 最难用的鼠标键、设置半天、反人类逻辑(罗技)

    目的 高效设置罗技鼠标键 提高复制粘贴效率 准备软件 Logitech G HUB Logitech 支持 下载 1 右上角 点击箭头 点击管理配置文件 2 左下角 点击加号 创建配置文件 办公 3 点击办公 4 右上角选择 办公 底部点击
  • HTML5 LocalStorage 本地存储

    原文地址 http www cnblogs com xiaowei0705 archive 2011 04 19 2021372 html 说到本地存储 这玩意真是历尽千辛万苦才走到HTML5这一步 之前的历史大概如下图所示 最早的Cook
  • [极客大挑战 2019]Http(BUUCTF)

    前言 这篇文章还是是为了帮助一些 像我这样的菜鸟 找到简单的题解 题目描述 解题工具 我用fiddler抓包 burpsuite也可以 解题过程 用F12查看一下源代码 发现Secret php 进入是一个高档页面 翻译一下意思是 来源不是
  • 构建面向全世界的网站——gettext支持多种语言

    原文地址 http book 51cto com art 200905 123469 htm 构建面向全世界的网站 Web的出现使人们之间的交流简单得不可思议 通过一个Internet连接和一个Web浏览器 你就可以与任何人通信 而此时此刻
  • javascript对象概念大全

    http www css88 com archives 512 本文介绍了几乎所有关于对象的基本概念 什么是对象 如何创建对象 对象的属性的设置和读取 删除属性的方法 构造函数 对象原型 父类 子类 继承等等 1 对象 对象是一种复合数据类
  • JS对象(一)

    http evanwukong blog 163 com blog static 134836495201232554038203 JavaScript 是面向对象的 但是不少人对这一点理解得并不全面 在 JavaScript 中 对象分为
  • filter IE滤镜(Internet Explorer)CSS

    http justcoding iteye com blog 940184 概述 CSS滤镜虽然只能在IE浏览器中表现出效果 但是仍不失为网页增加特效的好办法 1 CSS静态滤镜样式 filter CSS静态滤镜样式的使用方法 filter
  • js 分浏览器设置style属性

    http www cnblogs com jianshao810 archive 2010 06 20 1761120 html var cssText font weight bold color red 下面写法用于firefox类型浏
  • cookie 和session 的区别详解

    原文地址 http www cnblogs com shiyangxt archive 2008 10 07 1305506 html 这些都是基础知识 不过有必要做深入了解 先简单介绍一下 二者的定义 当你在浏览网站的时候 WEB 服务器
  • java实现信息的增删改查功能的网页设计(1)

    仅供参考 不可转载 如遇其他情况概不负责 后果自负 切记 该项目运用的技术 spring springMVC ibatis 本网页只有一个页面 包过信息的增 删 改 查功能 只有部分代码 仅供参考 因该项目比较大 所以仅提供了一个页面内的增
  • 梦之光芒Monyer (全关解析)

    目录 前言 第0关 描述 过程 第1关 描述 过程 第2关 描述 过程 第3关 描述 过程 第4关 描述 过程 第5关 描述 过程 第6关 描述 过程 第7关 描述 过程 第8关 描述 过程 第9关 描述 过程 第10关 描述 过程 第11
  • HTML导航菜单

    frameset html 文件
  • Gitee搭建自己的图床

    CSDN前段时间的下拉广告和红包雨属实恶心人 现在打算逐步分离文章 而为了避免以后发生更换平台而导致不必要的麻烦 还是把图床单独分离出比较好 图床有商业收费的 如七牛 又拍云 阿里oss数据存储这些 会按空间和流量来收费 高稳定性 适合企业
  • JS对象类型的确定

    http liaofeng xiao iteye com blog 697029 JS是松散类型的语言 这一点JS的对象表现得尤为突出 那么如何来确定JS对象的具体类型呢 首先 我们可以使用typeof运算符确定其基本类型 number o
  • http响应头connection的作用

    http chenchendefeng iteye com blog 461248 有的网站会在服务器运行一段时间后down掉 有很多原因可能造成这种现象 比如tomcat堆和非堆内存设置不足 程序没能释放内存空间造成内存溢出 或者某些进程
  • JavaScript window.location对象

    http www cnblogs com ljan archive 2012 02 27 2369960 html location 地址对象 它描述的是某一个窗口对象所打开的地址 要表示当前窗口的地址 只需要使用 location 就行了
  • JS 读写文件(实例)

    http blog sina com cn s blog 62cd41130100l7c5 html 用js不能直接读取文件 但是可以利用浏览器提供的activex来实现读写文件的方法 只在IE下测试过 其他浏览器下的activex对象不太
  • 获取,设置HTML控件位置

    得到HTML控件的位置 var v document all oo getBoundingClientRect 设置HTML控件的位置 dd style top v top dd style left v left
  • html的select控件实用js操作

    http www cnblogs com j3eee archive 2010 01 06 1640368 html 上 周在公司的erp项目中 将原来的商品分类 大类 一级分类和小类 改造成select控件的三级联动的效果 实际上笔者使用
  • html效果总结记录

    自动换行 style word break break all 改变布局或者显示文字 在html中插入如下类似代码

随机推荐

  • STL源码分析:空间配置器浅析

    目录 allocator alloc 一级配置器 二级配置器 自由链表 内存分配allocate S refill函数 S chunk alloc函数 内存释放deallocate 为什么要使用free list 为什么free list要
  • Java-spring数据库编程(idea)实现学生账号登录以及管理员增删改查功能

    通过所学的Spring数据库编程知识 实现学生管理系统的登录及增删改查的功能 要求学生在控制台输入用户名密码 如果用户账号密码正确则显示登录成功 如果登录失败则显示登录失败 登录成功后 可以进行增删改的功能 思路分析 根据学生管理系统及其登
  • 【数据结构详细学习笔记2】单链表的定义和表示

    目录 1 单链表基础知识 1 1线性表链式存储结构的特点 1 2 与链式存储有关的术语 1 3链表的类型 1 4表示空表 1 5设置头结点的好处 2 单链表代码实现 附源码 3 实现单链表遇到问题 1 单链表基础知识 1 1线性表链式存储结
  • matlab 算法集锦

    算法集锦 决策树 划分点 function n h huafendian1 x n返回增益 h返回划分点 假设0代表第一类 假设1代表第二类 输入x第一列为属性 第二列为用于学习的分类结果 m sort x 1 按小到大排序 x x m t
  • Guava 之 Multimap

    Multimap 是 guava 包下的一个接口 是一个 key collection 类型的集合 Multimap 接口方法 GwtCompatible public interface Multimap
  • Git rebase变基操作

    先讲个例子理解一下什么是变基 A B C dev D E F G master 两个分支master dev 其中dev分支是在master分支上的提交点E拉出的分支 在两个分支合并之前 master分支有了新的提交F G 此时想在gitl
  • C的泛型编程

    C的泛型编程 C语言支持泛型编程吗 Generic关键字 泛型算法 C99的tgmath h void 指针 总结 泛型编程 generic programming 是程序设计语言的一种风格或范式 泛型允许程序员在强类型程序设计语言中编写代
  • RocketMQ经典高频面试题大全(附答案)

    编程界的小学生 0 彩蛋 1 说说你们公司线上生产环境用的是什么消息中间件 2 多个mq如何选型 3 为什么要使用MQ 4 RocketMQ由哪些角色组成 每个角色作用和特点是什么 5 RocketMQ中的Topic和JMS的queue有什
  • AQS(AbstractQueuedSynchronizer)阻塞队列

    AQS 队列同步器是用来构建锁或其他同步组件的基础框架 它使用一个 volatile int state 变量作为共享资源 如果线程获取资源失败 则进入同步队列等待 如果获取成功就执行临界区代码 释放资源时会通知同步队列中的等待线程 同步器
  • PyTorch YOLOv8入门解读与Python实现

    PyTorch YOLOv8入门解读与Python实现 YOLOv8是一种基于PyTorch框架实现的目标检测算法 它能够快速准确地检测图像中的多个目标 本文将详细解读YOLOv8的原理 并提供相应的Python代码实现 YOLOv8简介
  • Oracle--初学小白基础篇(第一版)

    文章目录 一 Oracle11g介绍 1 Oracle11g安装和卸载 Oracle11g安装 Oracle11g卸载 1 使用Oracle Universal Installer管理工具卸载 2 使用 deinstall bat 批处理文
  • Redis事务、持久化、发布订阅

    文章目录 Redis事务 Redis持久化 RDB Redis DataBase 快照方式 AOF Append Only File 日志形式 Redis发布订阅 发布订阅模型 实例 Redis发布订阅命令 原理 Redis事务 Redis
  • flutter 字符串的常用属性及方法

    1 字符串长度 var str 字符串的长度 print 打印 str length 打印 6 var str1 hello dart print 打印 str1 length 打印 10 2 是否为空 str isEmpty为空true
  • 关于ElasticSearch的Update By Query的那些著名的坑

    提起es的Update By Query很多人一定也不陌生 它对应的就是关系型数据库的update set where 语句 这对应一般的存储引擎而言算是最基本的功能 但它的坑确不少 多到让你使用起来很奔溃 比如批量更新时非事务模式执行 允
  • selenium自动化测试的问题解决及优化

    目录 一 安装出现的问题 1 webdriver has no attribute find element by id 2 gecodriver needs to be in PATH 3 安装了selenium报错has no attr
  • io第一天

    ubuntu ubuntu day1 c cat 8 c include
  • PL/SQL 导入SQL文件时报“Error reading file”

    从另一台机器上导出了一个表的数据 有2万多条 导出的sql文件大小将近40M 之后使用PL SQL的Command Window窗口执行sql文件 执行命令是 SQL文件全路径 提示错误 Error reading file不知道是不是因为
  • 在Ubuntu中安装中文输入法

    文章目录 前言 基础准备 ibus Intelligent Input Bus fcitx Flexible Input Method Framework 前言 Ubuntu中安装中文输入法相比Windows上要复杂不少 其实也不算复杂 就
  • js实现一个表单输入验证,重复字符验证

    logon password check 加班到现在 还是得发个 csdn 本文主要通过一个案例介绍两个东西 正则表达式中 必须含有某类字符的时候对应的 正则写法 在我之前的正则文章中已经写过了 重复字符以及连续字符的判断方式 正则来表示验
  • JavaScript window.location对象

    http www cnblogs com ljan archive 2012 02 27 2369960 html location 地址对象 它描述的是某一个窗口对象所打开的地址 要表示当前窗口的地址 只需要使用 location 就行了