JS BOM

  之前提到过JS和DOM之间的互动方法。而BOM(Browser Object Module)是浏览器的对象模型,它也可以和JS进行互动。也就是说,JS还可以和浏览器进行互动。因为现代主流浏览器都已经实现了JS中和BOM相关的方法,所以JS对BOM也有很高的通用性和兼容性。下面将通过几种每个浏览器都有的,通用的对象来讲述JS和BOM之间的互动方式

■  通用方法

  alert(msg)  不用我说这是干什么的了把。。这些弹出框,和页面是不相关的,自然它们就是浏览器对象BOM的一部分了

  prompt(msg)  弹出一个可以让用户输入一些字符串的提示框

  confirm(msg)  弹出一个带确定和取消按钮的弹出框

■  window对象

  window对象抽象的是浏览器的窗口,即用户的视口。DOM中常用的文档的抽象document对象也是window对象的一个属性:window.document

  属性:

    window.innerHeight  浏览器内部窗口高度

    window.innerWidth  浏览器内部窗口宽度

  方法:

    window.open(URL[,name[,feature[,replace]]])  打开窗口,name参数为窗口指定一个名称,可以拿来作为<a>等元素的target属性值用,如果之前存在了指定name的窗口,那么不再新建而是引用现有窗口。feature是个字符串指明了新开窗口的一些样式(哪些样式参数可调整参见http://www.w3school.com.cn/jsref/met_win_open.asp#windowfeatures)。replace是boolean,指出是否替换历史记录。

    window.close()  关闭窗口

    window.moveTo(x,y)  移动窗口到

    window.resizeTo(x,y)  改变窗口大小

    window.scrollTo(posx,posy)  将显示的左上角变成页面的x,y坐标なれるように滚动页面

    window.blur()  把焦点从本窗口移开

    window.focus()  把焦点移到本窗口

■  window.screen对象

  window.screen对象抽象的是用户的屏幕,在编程的时候可以省略window直接写screen構わない。

  属性:

    screen.availHeight  用户屏幕高度

    screen.availWidth  用户屏幕宽度

    *这两个和window的那俩尺寸属性不太一样,比如浏览器窗口没最大化,或者一个页面里面有多个iframe(每个也算一个独立的窗口)时,窗口尺寸会变小,但是屏幕尺寸是不变的。

■  window.location对象

  window.location对象抽象的是页面的URL。和screen一样,写的时候可以不要window做前缀

  属性:

    location.href  当前页面的完整URL

    location.hostname  web主机的域名

    location.pathname  当前页面路径或文件名

    location.port  当前连接的端口

    location.protocol  当前连接的协议

  方法:

    location.assign(new_url)  让当前窗口重新加载一个新的页面

■  window.history对象

  history对象维护了用户的历史操作信息,和上面的一样可以省去window前缀

  方法:

    history.back()  相当于浏览器的后退

    history.forward()  相当于浏览器的前进

    

■  window.navigator对象

  navigator对象维护的是本次请求中浏览器的信息,也可以去掉window前缀

  直接看个实例吧:

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>"; document.getElementById("example").innerHTML=txt;

  得到的结果是:

Browser CodeName: Mozilla

Browser Name: Netscape

Browser Version: 5.0 (Windows)

Cookies Enabled: true

Platform: Win32

User-agent header: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0

User-agent language: undefined

  

■  消息框对象

  JS调用消息框对象时大多数时候是调用了其构造方法来跳出一个消息框。消息框大概有以下几种:  

  alert(message)  提示框

  confirm(message)  确认框,用户点确定返回true,取消返回false

  prompt(message,defaultvalue)  提升输入框,用户输入后点击确认返回输入值,点击取消返回默认值,如果默认值未设置则返回null

■  计时对象

  JS可以调用以下两个方法来设置/取消计时,设置计时相当于是设置让某些动作在固定时间后发生

  setTimeout("some_javascript",milisecond)  注意两点,1.计时的单位是毫秒 2.第一个参数不是函数或者其他什么对象,而是字符串。也就是说,必须传字符串进去,然后JS会对这个字符串进行解析然后执行。setTimeout方法会返回一个计时对象。

  clearTimeout(timeout_object)  参数是一个计时对象,用来取消这个计时对象定下的计时任务。

  来综合看一个示例,这个实例按下start count按钮后每隔一秒增加一个count,无限循环直到按下stop count按钮

<html>

<head>
<script type="text/javascript">
var c=0
var t function timedCount()
{
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
} function stopCount()
{
clearTimeout(t)
}
</script>
</head> <body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
</body> </html>

  

【JS】 Javascript与BOM的互动 寻路的更多相关文章

  1. 【JS】 Javascript与HTML DOM的互动 寻路

    JS HTML DOM DOM的全程是Document Object Module,即文档对象模型.一般来说,当一个页面被加载时,浏览器会在内部创建一个当前文档的DOM.就像用python的Etree ...

  2. JavaScript的BOM和DOM

    JavaScript的BOM和DOM 1,window对象,所有浏览器都支持window对象,它表示浏览器窗口 BOM(browser Object Model)是指浏览器对象模型,它使JavaScr ...

  3. JS(DOM 和 BOM)

    JS(DOM 和 BOM) 常说的JS(浏览器执行的JS)包含两部分:1.JS基础知识(语法)(ECMA262标准)2.JS-Web-API(W3C标准) W3C 标准中关于 JS 的规定有:(只管定 ...

  4. JavaScript(4)---BOM详解

    JavaScript(4)---BOM详解 之前写过一篇有关DOM的博客:JavaScript(2)---DOM详解 DOM有个顶级对象叫:document.同样BOM中也有顶级对象叫 window. ...

  5. [JavaScript之BOM与DOM]

    [JavaScript之BOM与DOM] BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". DOM ( ...

  6. Atitit.js javascript的rpc框架选型

    Atitit.js javascript的rpc框架选型 1. Dwr1 2. 使用AJAXRPC1 2.2. 数据类型映射表1 3. json-rpc轻量级远程调用协议介绍及使用2 3.1. 2.3 ...

  7. Immutable.js – JavaScript 不可变数据集合

    不可变数据是指一旦创建就不能被修改的数据,使得应用开发更简单,允许使用函数式编程技术,比如惰性评估.Immutable JS 提供一个惰性 Sequence,允许高效的队列方法链,类似 map 和 f ...

  8. Js(javaScript)的闭包原理

    问题?什么是js(javaScript)的闭包原理,有什么作用? 一.定义 官方解释:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.  小编 ...

  9. 【转】Eclipse去除js(JavaScript)验证错误

    这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步:去除eclipse的JS验证:将window ...

随机推荐

  1. 用开源的 ffmpeg 实现屏幕录像机

    在我看来,FFmpeg 绝对是一个很酷的应用.那么,它究竟有什么用呢?简单地讲,FFmpeg 相当于一个屏幕录像机.你可以使用它将屏幕上的操作过程录制下来,然后再将其播放给别人看.我们可以利用它制作教 ...

  2. R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)

    R语言︱数据集分组 大型数据集通常是高度结构化的,结构使得我们可以按不同的方式分组,有时候我们需要关注单个组的数据片断,有时需要聚合不同组内的信息,并相互比较. 一.日期分组 1.关于时间的包都有很多 ...

  3. NetBeans导入项目jar路径错误解决办法

    NetBeans导入项目jar路径错误解决办法 1.NetBeans中导入项目jar路径出错,单击项目右键,选择"属性",找到"库" 2.找到错误jar,全部勾 ...

  4. Netty未来展望

    作为<Netty权威指南(第2版)>的结尾章节,和读者朋友们一起展望下Netty的未来. 1应用范围 随着大数据.互联网和云计算的发展,传统的垂直架构逐渐将被分布式.弹性伸缩的新架构替代. ...

  5. Error #2044: 未处理的 ioError:。 text=Error #2032

    1.错误描述 Error #2044: 未处理的 ioError:. text=Error #2032: 流错误. URL: http://127.0.0.1:8080/HBMB/analysis/a ...

  6. hihocoder Challenge 29 D. 不上升序列

    这场爆零比赛题目还是要补的 这道题据说是出烂掉的原题,我找了下 CF13.C/ CF371 div1 C,一模一样 我服这群原题大佬 为 当时,使 不严格递增的最小步数,那么 Otherwise 显然 ...

  7. js call的方法

    call 方法 请参阅 应用于:Function 对象 要求 版本 5.5 调用一个对象的一个方法,以另一个对象替换当前对象. call([thisObj[,arg1[, arg2[, [,.argN ...

  8. ASP.NET登录记住用户名

    案例如下: 1:首先在登录的控制器中定义一个全局变量 public const string LonginName = "sessName"; 2:在登陆的方法中 public A ...

  9. TCP/IP协议三次握手与四次握手流程解析(转)

    一.TCP报文格式   下面是TCP报文格式图:       上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标 ...

  10. 金三银四,2018最新iOS面试题,由它可以搞定面试官?

    序言 这些资料,你一定会用到!我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多.失业即相当于转行,跳槽即相当于降低自己的身价.那么做iOS开发的你,你是否在时 ...