JavaScript的个人学习随手记(三)

摘要:
JavaScript窗口浏览器对象模型可用于省略窗口对象下的窗口对象。所有浏览器都支持窗口对象。所有JavaScript全局对象、函数和变量都自动成为窗口对象的成员。文件写JavaScriptWindowLocationwindow。位置对象用于获取当前页面的地址,并将浏览器重定向到新页面。位置。pathname属性返回URL的路径名。窗口位置。assignJavaScript WindowHistory对象包含浏览器的历史记录。为了保护用户隐私,JavaScript访问对象的方法受到限制。

JavaScript Window - 浏览器对象模型

Window 对象

以下window对象时使用均可省略window

所有浏览器都支持 window 对象。它表示浏览器窗口。

所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。

全局变量是 window 对象的属性。

全局函数是 window 对象的方法。

甚至 HTML DOM 的 document 也是 window 对象的属性之一:

window.document.getElementById("header");

与此相同:

document.getElementById("header");

Window 尺寸

实用的 JavaScript 方案(涵盖所有浏览器):

实例

var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth; 
var h=window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;

其他 Window 方法

一些其他方法:

  • window.open() - 打开新窗口
  • window.close() - 关闭当前窗口
  • window.moveTo() - 移动当前窗口
  • window.resizeTo() - 调整当前窗口的尺寸

JavaScript Window Screen

window.screen 对象包含有关用户屏幕的信息。

Window Screen 可用宽度

screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去界面特性,比如窗口任务栏。

document.write("可用宽度:" + screen.availWidth);


 

Window Screen 可用高度

screen.availHeight 属性返回访问者屏幕的高度,以像素计,减去界面特性,比如窗口任务栏。

document.write("可用高度:" + screen.availHeight);

JavaScript Window Location

window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

  • location.hostname 返回 web 主机的域名
  • location.pathname 返回当前页面的路径和文件名
  • location.port 返回 web 主机的端口 (80 或 443)
  • location.protocol 返回所使用的 web 协议(http:// 或 https://)

location.href 属性返回当前页面的 URL。

location.pathname 属性返回 URL 的路径名。

location.assign() 方法加载新的文档。

window.location.assign("http://www.w3school.com.cn")

JavaScript Window History  对象包含浏览器的历史。

为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。

一些方法:

  • history.back() - 与在浏览器点击后退按钮相同

此方法加载历史列表中的前一个 URL

  • history.forward() - 与在浏览器中点击按钮向前相同

此方法加载历史列表中的下一个 URL

JavaScript Window Navigator    

window.navigator 对象包含有关访问者浏览器的信息。

navigator.appName          浏览器名称

navigator.appVersion        浏览器版本

navigator.appCodeName   代码                如Mozilla

navigator.platform           平台               如Win32

navigator.cookieEnabled   Cookies 启用         true      or   false

navigator.userAgent         浏览器的用户代理报头

BrowserLanguage            浏览器版本语言
SystemLanguage        浏览器系统语言
UserLanguage            浏览器用户语言

参考:   更多属性

http://www.monmonkey.com/javascript/liulanqi2.html

警告:来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:

  • navigator 数据可被浏览器使用者更改
  • 浏览器无法报告晚于浏览器发布的新操作系统

浏览器检测

由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器。

由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 "window.opera",您可以据此识别出 Opera。

例子:if (window.opera) {...some action...}

JavaScript 消息框

可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。

 建议

其实从用户体验角度就知道这些弹出框是最恶心,用户体验最差的,一般都是在错误信息下面加一行红字提示,除了某些交易确认需要,其他很少用到,所以尽量避免使用这些框,了解即可。

 

警告框

警告框经常用于确保用户可以得到某些信息。

当警告框出现后,用户需要点击确定按钮才能继续进行操作。

语法:

alert("文本")

 

 

确认框

确认框用于使用户可以验证或者接受某些信息。

当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。

如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。

语法:

confirm("文本")

提示框

提示框经常用于提示用户在进入页面前输入某个值。

当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。

如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。

语法:

prompt("文本","默认值")

JavaScript 计时

通过使用 JavaScript,我们有能力做到在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

在 JavaScritp 中使用计时事件是很容易的,两个关键方法是:

setTimeout()            未来的某时执行代码

语法

var t=setTimeout("javascript语句",毫秒)

例子:

var t=setTimeout("alert('5 seconds!')",5000)

 

 

 

clearTimeout()  取消setTimeout()

语法

clearTimeout(setTimeout_variable)

例:通过事件调用时间计算开始和停止的方法

function timedCount() 
{ 
 document.getElementById('txt').value=c
 c=c+1 
 t=setTimeout("timedCount()",1000) 
}

function stopCount()
{
clearTimeout(t)
}
 
 
 

JavaScript Cookies

cookie 用来识别用户。

名字 cookie

当访问者首次访问页面时,他或她也许会填写他/她们的名字。名字会存储于 cookie 中。当访问者再次访问网站时,他们会收到类似 "Welcome John Doe!" 的欢迎词。而名字则是从 cookie 中取回的。

密码 cookie

当访问者首次访问页面时,他或她也许会填写他/她们的密码。密码也可被存储于 cookie 中。当他们再次访问网站时,密码就会从 cookie 中取回。

日期 cookie

当访问者首次访问你的网站时,当前的日期可存储于 cookie 中。当他们再次访问网站时,他们会收到类似这样的一条消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是从 cookie 中取回的。

创建和存储 cookie

在这个例子中我们要创建一个存储访问者名字的 cookie。当访问者首次访问网站时,他们会被要求填写姓名。名字会存储于 cookie 中。当访问者再次访问网站时,他们就会收到欢迎词。

<html>
<head>
<script type="text/javascript">
//检查获取 cookie
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=")
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1 
    c_end=document.cookie.indexOf(";",c_start)
    if (c_end==-1) c_end=document.cookie.length
    return unescape(document.cookie.substring(c_start,c_end))
    } 
  }
return ""
}
//会创建一个可在 cookie 变量中存储访问者姓名的函数
function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

//如果 cookie 已设置,则显示欢迎词,否则显示提示框来要求用户输入名字
function checkCookie()
{
username=getCookie('username')
if (username!=null && username!="")
  {alert('Welcome again '+username+'!')}
else 
  {
  username=prompt('Please enter your name:',"")
  if (username!=null && username!="")
    {
    setCookie('username',username,365)
    }
  }
}
</script>
</head>

<body onLoad="checkCookie()">
</body>
</html>

免责声明:文章转载自《JavaScript的个人学习随手记(三)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux远程目录挂载Vue中如何给字符串前面加空格下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS平台下cookie的使用

iOS平台下cookie的使用 首先,先介绍下iOS对cookie的操作的两个类: 帖子来源于:http://blog.csdn.net/chun799/article/details/17206907 1. NSHTTPCookie  2. NSHTTPCookieStorage NSHTTPCookie对象代表一个HTTP cookie。 这是一个不...

如何用JS判断网页中某个id的网页元素是否存在(两种写法 jQuery写法和原始写法:

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在。原bai因是对一个不存在的元素进行操作是不允许的。例如:document.getElementById("someID").innerText("hi");如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getE...

前端福利!10个短小却超实用的JavaScript 代码段

JavaScript正变得越来越流行,它已经成为前端开发的第一选择,并且利用基于JavaScript语言的NodeJS,我们也可以开发出高 性能的后端服务,甚至我还看到在硬件编程领域也出现了JavaScript的身影。JavaScript正在逐渐进化为一门全能的开发语言。下面是我收集 的10段实用JavaScript代码,基于它们你还可以创造出更强大的JS...

HTTP 请求头 Header

HTTP 请求头 Header  HTTP请求头概述 (HttpServletRequest) HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST或者HEAD)。   如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-...

Javascript诞生与历史

基本常识 Brendan Eich在1995年4月入职Netscape Communications Corporation(网景通信公司)。并于1995年5月用10天时间发明了Javascript。 Javascript语言特点 借鉴c语言的基本语法 借鉴Java语言的数据类型和内存管理 借鉴Scheme语言,将函数提升到“第一等公民”(first c...

关于cookie在一个页面设置但是在另外一个页面获取不到的原因

如上图,设置两个cookie,它所在的文件如下图: 接下来我们来看看浏览器里面的cookie,chorme如下查看: 其中你可以看到有两个cookie是我们设置的 那么我是不是现在就可以在登录页面获取到这两个cookie值了呢? 看下图: 当打开登录页面的cookie,你会发现并没有自己想要的cookie值,这是为什么呢?原理其实很简单,就是...