JS--JavaScript中的History对象API、screen对象的API、设置弹出窗口居中

history对象

history对象存储浏览器窗口的浏览历史,通过window对象的history属性可以访问该对象。实际上,history对象存储最近访问的、有限条目的URL信息。为了保护客户端浏览信息的安全和隐私,history对象禁止JavaScript脚本直接操纵这些访问信息。

History对象允许使用length属性读取列表中URL的个数,并可以调用back()、forward()和go()方法访问数组中的URL。

  • back():
    返回到前一个URL

  • forward():
    访问下一个URL

  • go():
    该方法比骄傲灵活,它能够根据参数决定可访问的URL。

    1. 如果参数为正整数,浏览器就会在历史列表中向前移动;如果参数值为负整数,浏览器就会在历史列表中向后移动。例如,history.go(-1)等价于history.back(),而hisroty.go(1)等价于history.forward(),history.go(0)等价于刷新页面。
    2. 如果参数为一个字符串,则history对象能够从浏览历史记录中检索包含该字符串的URL,并访问第一个检索到的URL。

history.back()和hisroty.forward()与浏览器软件中的“后退”和“向前”按钮功能一致。每个窗口都有独立的历史记录,并通过独立的history属性引用。当打开浏览器新建窗口时,由于历史记录为空,所以对应的方法都是无效的。

访问框架(frame)的历史记录一般可以通过下面的方法实现:

frames[n].history.back();
frames[n].history.forward();
frames[n].history.go(int);
screen对象

screen对象存储客户端屏幕信息,如下表。这些信息可以用来探测客户端硬件的基本配置。利用screen对象可以优化程序的设计,满足不同用户的显示要求。

screen对象属性:

属性描述
availHeight返回显示屏幕的高度(除windows任务栏之外)
availWidth返回显示屏幕的宽度(除window任务栏之外)
bufferDepth设置或返回掉色版的比特深度
colorDepth返回目标设备或缓冲器上的调色板的比特深度
deviceXDPI返回显示屏幕的每英寸水平点数
deviceYDPI返回显示屏幕的每英寸垂直点数
fontSmoothingEnabled返回用户是否在显示控制面板中启动了字体平滑
height返回显示屏幕的高度
logicalXDPI返回显示屏幕每英寸的水平方向的常规点数
logicalYDPI返回显示屏幕每英寸的垂直方向的常规点数
pixelDepth返回显示屏幕的颜色分辨率(比特每像素)
updateInterval设置或返回屏幕的刷新率
width返回显示器屏幕的宽度

用户可以根据显示器屏幕大小选择使用图像的大小,或者根据显示器的颜色深度选择使用16色图像或8色图像,或者打开新窗口时设置居中显示。

示例:弹出窗口居中显示

<script>
	function center(url){
		//获取客户端屏幕宽度的一半
		var w = screen.availWidth / 2; 	
		//获取客户端屏幕高度的一半
		var h = screen.availHeight / 2;  	 
		//计算居中显示时顶部坐标
		var t = (screen.availHeight - h) / 2;
		//计算居中显示时左侧的坐标
		var l = (screen.availWidth - w) / 2;
		//设计坐标参数字符串
		var p = "top=" + t + ",left=" + l + ",width=" + w + ",height=" + h;
		//打开指定窗口,并传递参数
		var win = window.open(url, "url", p);
		//获取指定窗口焦点
		win.focus();
	}
	//测试
	center("http://www.baidu.com/");
</script>

在这里插入图片描述

注意:虽然使用screen对象的width和height属性可以实现,但是不同浏览器在解析时会存在一定的差异。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值