设为首页 收藏本站
查看: 811|回复: 0

[经验分享] JavaScript面向对象之Windows对象

[复制链接]
发表于 2018-6-18 13:19:45 | 显示全部楼层 |阅读模式
  JavaScript之Window对象
  首先我们先了解一个概念:事件。
  事件,就是把一段代码设置好,满足条件时触发。或者说,事件是可以被 JavaScript 侦测到的行为。
  网页中每个元素都可以触发JavaScript事件。
  我们先来看一个简单的事件:
DSC0000.gif

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; " /><title>无标题文档</title></head><body>  
    <input type="button" value="点击" /></body></html><script>
  
    function dianJi(){
  
        alert("这是函数dianJi");
  
    }</script>

  我们可以使用<input>标签的onClick属性来调用设置好的函数dianJi(),这就是一个简单的点击事件。
DOM对象之Windows对象
  DOM对象:当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
  HTML DOM 模型被构造为对象的树。
DSC0001.jpg

  打开网页后,首先看到的是浏览器窗口,即顶层的window对象。
  其次,看到的是网页文档的内容,即document文档。
  我们先来看一下Window对象。
  Window有属性和方法:
  属性(值或者子对象):
  opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口。
  方法(函数):
  事件(事先设置好的程序,被触发):
window.open("第一部分","第二部分","第三部分","第四部分");
  特征参数:
  第一部分:写要打开的页面地址
  第二部分:打开的方式,_blank 是在新窗口打开 _self
  第三部分:控制打开的窗口,可以写多个,用空格隔开
  toolbar=no新打开的窗口无工具条
  menubar=no无菜单栏
  status=no无状态栏

  width=100>  left=100 打开的窗口距离左边多少距离
  resizable=no窗口大小不可调
  scrollbars=yes 出现滚动条
  location=yes 有地址栏
  以上属性不常用,且多不兼容
  返回值:新打开的窗口对象

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body>  
    <input type="button" value="点击" /></body></html><script>
  
    function show(){
  
    window.open("http://www.baidu.com","_blank","toolbar=no menubar=no status=no width=300 height=500 left=100 resizable=no scrollbars=yes location=yes ");
  
    }</script>

DSC0002.jpg

  打开的窗口还可以保存在一个变量中,并用另一个事件关闭,用close():关闭指定的窗口
  close():关闭指定的窗口
  window.close():关闭当前窗口
  w.close():关闭w窗口
  关闭多个子窗口:放在数组中的窗口:w.close();
  关闭打开当前窗口的源窗口
  window.opener.close();

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body>  
    <input type="button" value="点击" />
  
    <input type="button" value="关闭"  /></body></html><script>
  
    var w;    function show(){
  
    w = window.open("http://www.baidu.com","_blank");
  
    }    function guanBi(){
  
    w.close();
  
    }</script>

DSC0003.jpg

  在以上页面中我们可以通过点击关闭按钮关闭打开的页面。
  这样打开可以多次打开,我们还可以通过if判断设置只能打开一次:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body>  
    <input type="button" value="点击" />
  
    <input type="button" value="关闭"  /></body></html><script>
  
    var w;    function show(){        if(w==null){
  
            w = window.open("http://www.baidu.com","_blank");
  
        }
  
    }    function guanBi(){
  
    w.close();
  
    }</script>

  这里用一个if语句,判断w的值是否为空,打开一个窗口之后w的值就不为空了,之后再点击鼠标调用此函数则不执行打开新窗口。
  我们还可以用数组的push()方法将所有打开的页面存到一个数组里,然后用close()方法一起关闭:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body>  
    <input type="button" value="点击" />
  
    <input type="button" value="关闭"  /></body></html><script>
  
    var w=new Array();    function show(){
  
        w.push(window.open("http://www.baidu.com","_blank"));
  
    }    function guanBi(){        for(i=0;i<w.length;i++){
  
            w.close();
  
        }
  
    }</script>

间隔:
  window.setInterval("要执行的代码",间隔的毫秒数)
  window.clearInterval(间隔的id); 循环一次之后用来清除隔几秒执行的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title></head><body>  
    <input type="button" value="开始"  />
  
    <input type="button" value="停止"  /></body></html><script>
  
    function show(){
  
        alert("hello");
  
    }    var id;    function start(){
  
        id = window.setInterval("show()",1000);
  
    }    function end(){
  
        window.clearInterval(id);
  
    }</script>

  在window.setInterval("",  )中,前面是间隔时间执行的代码,后面是间隔的时间,单位是毫秒。
延迟:
  window.setTimeout("要执行的代码",延迟的毫秒数)
  window.clearTimeout(延迟的id);清除setTimeout,一般延迟执行较为常用。
    window.setTimeout("show()",10000);  
    window.clearTimeout();
  使用延迟来做到间隔的效果:
    function show(){  
        alert("hello");
  
        window.setTimeout("show()",1000);
  
    }
  
    show();
  使用类似递归的方式,在函数中自己调用自己,从而使延迟不断地运行,来使用延迟做到间隔的效果。
页面操作:
  window.moveTo(x,y); 移动页面
  window.resizeTo(宽,高); 调整页面
  window.scrollTo(x,y);滚动页面至哪里
  以上方法多不兼容。
模态对话框
  模态:打开对话框之后,对话框之后的内容是不能操作的。
  window.showModalDialog("url","向目标对话框传的值","窗口特征参数") 打开模态对话框
  模态对话框必须关掉才能对后端操作。 模块对话框和窗口的区别是永远置顶。
  特征参数:用分号隔开,像素大小用px。dialogHeight,dialogWidth,center,等。
window.history对象
  历史记录,通过历史记录可以操作页面前进或者后退
  window.history.back();后退
  window.history.forward();前进
  window.history.go(n); n是正数代表前进n个页面,n是负数代表后退n个页面。
  window.location对象
location地址栏
  页面的重定向
    function tiao(){  
        window.location.href="index.html";
  
    }
  var s = window.location.href;获取当前页面的地址
  window.location.href="http://www.baidu.com";修改页面地址,会跳转页面
  window.location.hostname: 主机名,域名,网站名,可用变量接收
  window.location.pathname: 路径名,可用变量接收
window.status对象
  status状态栏,可以给状态栏添加要显示的文字
  window.status="要在状态栏显示的内容";设置状态栏文字
  window.showModelessDialog("url","向目标对话框传的值","窗口特征参数")打开非模块对话框,不用关闭可以操作后面。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-525432-1-1.html 上篇帖子: 【记录】vmware fusion 7 windows 10 unidentified network 下篇帖子: windows nginx日志滚动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表