BOM下的属性和方法---上
-------------BOM------------------------------------------------
三个系统对话框
浏览器可以通过alert()、confirm()和prompt()方法可以调用系统对话框向用户显示信息。
//弹出警告 alert(“Lee”); //直接弹出警告框 //提示框 //确定和取消 confirm(“请确定或者取消”); if(confirm((“请确定或者取消”)){ alert(“您按了确定!”); //按确定返回true }else{ alert(“您按了取消!”) //按取消返回false } //输入带输入提示框 var num = prompt(“请输入一个数字”, 0); //两个参数,一个提示,一个值 alert(num); //得到输入的值 //prompt 输入的内容 输入的都是字符串。在网页上所有的输入的内容都是字符串。 var num1 = prompt('请输入第一个数', 100); var num2 = prompt('请输入第二个数', 100); var rse = confirm('确定计算' + num1 + '+' + num2 + '?'); if(rse){ alert(num1 + num2); // 100100 (假设输入的都是100) alert(Number(num1) + Number(num2));//结果 200(假设输入的是100) //所有网页上输入的内容都是以字符串的形式,如果要进行运算必须转换成Number类型 }else{ alert('您取消了!'); }
一个方法open
window.open
3、open方法
// window.open()
//
/*
open()
第一个参数:url 打开新窗口,加载该url
第二个参数:任意字符串 给你打开的新窗口起一个名字
第三个参数:width,height是窗口的宽高
top,left 是以屏幕左上角为原点
*/
window.onload = function(){ var oBtn = document.getElementById("btn1"); oBtn.onclick = function(){ open("https://www.baidu.com", "baidu", "width=400,height=400,left=200,top=200"); }
window.open() 方法可以导航到一个特定的URL,也可以打开
一个新的浏览器窗口,一般可以接受三个参数:
1.要加载的URL
2.窗口的名称或者窗口的目标
3.一个特性的字符串
open(“http://www.baidu.com”); //新建页面并打开百度 open(“http://www.baidu.com”, “baidu”); //新建页面并命名窗口并打开百度 open(“http://www.baidu.com”, “_parent”); //在本页窗口打开,_blank是新建
【注】不命名会每次打开新窗口,命名的第一次打开新窗口,之后在这个窗口中加载。
第三个参数字符串中的参数说明:
left , top 都是相对于屏幕窗口左上角,而不是浏览器窗口。
open三个参数都是以字符串的形式。
既open(字符串,字符串,字符串);字符串可以直接用引号赋值' '也可用 其他类型用+拼接最后得到字符串。
open('http://www.baidu.com','baidu','width=400,height=400,top=200,left=200’); //open本身返回子窗口的window对象 var box = open(); box.alert('');//可以指定弹出的窗口执行 alert();
---娱乐---------利用open攻击代码:----------------------
--------------------利用open攻击代码:end--------------------------------
子窗口操作父窗口(火狐支持——了解即可)IE11也支持
opener属性
document.onclick = function(){ opener.document.write(“子窗口让我输出的!”); }
代码示例:
父网页:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> body{ font-size: 9pt;"> } </style> <script> window.onload = function(){ var oBtn = document.getElementById('btn1'); oBtn.onclick = function(){ open("sub.html", "子窗口", "width=400,height=400,left=200,top=200"); //点击按钮时利用 window下的open方法打开一个子名字叫 子网页 ,宽400px,高400px,距离屏幕左边的位置200px, //距离屏幕上边的距离200px 的网页。 } } </script> </head> <body> <h1>父窗口</h1> <button id = 'btn1'>打开子窗口</button> </body> </html>
子网页代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> body{ font-size: 9pt;"> } </style> <script> /* 【注】opener是火狐兼容 如果有父窗口打开子窗口这件事情发生, 在子窗口会产生一个对象 opener opener是window对象,是打开当前窗口的 父窗口的 window对象 */ window.onload = function(){ var oBtn = document.getElementById("btn1"); oBtn.onclick = function(){ // alert(opener); opener.document.write("hello world"); //所以点击子网页(窗口)的 按钮 向页面输出 hello world 并不会输入到子窗口,而是输出到了父网页(窗口)中 } } </script> </head> <body> <h1>子窗口</h1> <button id = 'btn1'>按钮</button> </body> </html>
浏览器效果:
两个对象 history,location
history对象
【history对象】
history对象是window对象的属性,它保存这用户上网的记录,从窗口被打开的那一刻算起。
7.1.history对象的属性和方法
属性
history.length;//history对象中的记录数
方法
history.back(); //前往浏览器历史条目前一个URL,类似后退
history.forward(); //前往浏览器历史条目下一个URL,类似前进
history.go(num); //浏览器在history对象中向前或向后
history对象
history对象的属性
history.length
返回,当前窗口的历史记录,只要关闭当前窗口就没有了。
history.length 与 window.history.length 相同说明history是window下的属性,history也是
个对象(js里一切皆对象),所以它下面也有属性和方法
history对象的方法
history.back() 返回上一条记录
history.forward() 前进到下一条记录
history.go(num)
可以传参
正整数 2 前进两条记录
负整数 2 后退两条记录
0 刷新页面
只要两次的url不一样就会产生历史记录(history)
代码示例:
<script> /* history对象 history对象的属性 history.length 返回,当前窗口的历史记录,只要关闭当前窗口就没有了。 history对象的方法 history.back() 返回上一条记录 history.forward() 前进到下一条记录 history.go(num) 可以传参 正整数 2 前进两条记录 负整数 2 后退两条记录 0 刷新页面 */ // alert(history === window.history); window.onload = function(){ var oBtn = document.getElementById('btn1'); oBtn.onclick = function(){ /* 只要两次url不一样,就会产生历史记录。 */ alert(history.length); } } //返回上一条 function backFunc(){ history.back(); }//返回下一条 function forwardFunc(){ history.forward(); } //自定义返回第几条历史,可以存入参数 function goFunc(){ history.go(2); } </script> </head> <body> <button id = 'btn1'>展示有几条历史记录</button> <button onclick = "backFunc();">back</button> <button onclick = "forwardFunc();">forward</button> <button onclick = "goFunc();">go</button> </body> </html>
浏览器效果:
location对象
location是BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能。事实上,location对象是window对象的属性,也是document对象的属性;所以window.location和document.location等效。
地址栏 内的内容是 url (全球资源定位器)。
location对象下的方法 (函数)
location.assign(url) 当前窗口页面跳转,会产生历史记录
location.replace(url) 页面替换,并不会产生历史记录
location.reload() 页面刷新
location.reload(true) 不经过浏览器缓存,直接从服务器上重新加载该也没。强制重载。
自己代码示例:
<title>location对象的方法(函数)</title> <script> function reloadFun(){ //相当于浏览器的 刷新 按钮,重新加载的功能(用代码的方式) location.reload(); } function assginFun(){ //打开一个网址,并产生历史记录,这种行为的表现就是 浏览器的 后退 按钮 //可以点击,进行后退操作。 location.assign('https://www.baidu.com'); } function replaceFun(){ //打开一个网址,不产生历史记录,这种行为的表现就是 浏览器的 后退 按钮 //不可以点击,无法进行后退操作。相当与刚刚打开里一个全新的页面。 location.replace('https://www.baidu.com'); } </script> </head> <body> <button onClick="reloadFun()">reload页面刷新</button> <button onClick="assginFun()">assgind打开页面并产生记录</button> <button onClick="replaceFun()">replace打开页面不产生记录</button> </body>
浏览器效果:
location对象的方法(函数)代码示例:
<script> /* 下述location指向的是同一个对象。 location 窗口上的地址栏对象。 */ // alert(window.location === window.document.location); // // location /* location的函数(方法) location.assign(url) 当前窗口页面跳转,会产生历史记录 location.replace(url) 页面替换,并不会产生历史记录 location.reload() 页面刷新 location.reload(true) 不经过浏览器缓存,直接从服务器上重新加载该页面。强制重载。 */ /* url 全球资源定位器 */ function btnClick(){ // location.assign("https://www.baidu.com"); // location.replace("https://www.baidu.com"); location.reload(); } </script> </head> <body> <button onclick = 'btnClick();'>按钮</button> </body>
location对象的属性(个别属性需要再服务器环境下才能测试)
代码示例1:
<script> /* 下述location指向的是同一个对象。 location 窗口上的地址栏对象。 */ /* url 全球资源定位器 协议://主机名:端口号/路径/?查询字符串#锚点 protocol://host:port/pathname/?search#hash */ /* location下的属性 协议 protocol hostname 主机名 域名/IP www.baidu.com/61.135.169.121 IP:上网设备所在网络的地址。唯一的。 pathname 路径 search 查询字符串(了解) 整个url后面,通过?拼接的部分 hash 锚点 port 端口号 在本地电脑上,给每一个正在使用网络的软件,分配一个编号,叫做端口号。 host IP:端口号 (浏览器 8080 FTP 20,22) */ // alert(location.protocol) // alert(location.hostname); // alert(location.pathname); // alert(location.search); // alert(location.hash); alert(location.port); </script> </head> <body> </body>
完整的url
未完结(内容过长_超限)---请查看 BOM下的属性和方法---下