zoukankan      html  css  js  c++  java
  • 读书笔记

     
    BOM的核心对象是window
    它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网页中定义的任何一个对象,变量 和 函数 
    都以window作为其Global函数
    窗口关系和frame
    每个frame都有自己的window对象,并且保存在frames集合中,
    在frames集合中,可能通过数值索引 或者 框架名称来访问 相应的 window 对象
    top
    始终指向 最高层的 框架,也就是浏览器窗口
    self
    始终指向 window 
    引入self对象的目的,只是为了与top和parent对象对应起来,因此它不格外包含其它值
    确定和修改window对象位置的属性和方法
    var leftPos = ( typeof window.screenLeft == "number" ) ? window.screenLeft : window.screenX  ;
    var topPos = ( typeof window.screenTop == "number" ) ? window.screenTop: window.screenY ;
    将窗口移动到屏幕左上角
    window.moveTo( 0, 0 ) ; //在Opera或IE7里可能不管用
    将窗口向下移动 100 像素
    window.moveBy( 0, 100 ) ;//在Opera或IE7里可能不管用
    将窗口移动到(200,300 )
    window.moveTo( 200, 300 );//在Opera或IE7里可能不管用
    将窗口向左移动 50 像素
    window.moveBy( -50, 0 ) ;v
    如何确定页面视口的大小
    var pageWidth = window.innerWidth ;
    var pageHeight = window.innerHeight ;
    if( typeof pageWidth != "number" ){
        if( document.compatMode == "CSS1Compat" ){
              pageWidth = document.documentElement.clientWidth ;
              pageHeight = document.documentElement.clientHeight;
        }else{
              pageWidth = document.body.clientWidth ;
              pageHeight = ducument.body.clientHeight ;
        }
    }
    缩放窗口
    window.resizeTo( 100, 100 ) ;//在Opera或IE7里可能不管用
    window.resizeBy( 100, 50 ) ;  //在Opera或IE7里可能不管用
    innerWidth 
    innerHeight
    outerWidth
    outerHeight
    outer表示浏览器窗口本身的尺寸
    inner表示页面视图容器的大小
    导航和打开窗口
    window.open()传四个参数
    1 url
    2 窗口目标。 比如 a标签的name,也可以传 _self _parent _top _blank 
    3 特性字符串(如果打开的是新窗口或标签页,才启作用) 类似"height=40,top=10"
    4 新页面是否取代浏览器历史记录中当前加载页面的布尔值
     
    这方法会返回一个指向新窗口的引用
    上面的第3个参数可以传的值
    fullscreen 传yes或no 表示浏览器窗口是否最大化 仅限IE
    location 传yes或no 表示是否显示地址栏 或是否禁止地址栏
    menubar 传yes或no 表示是否显示菜单栏
    resizable 传yes或no 表示是否可以拖动浏览器窗口的边框改变其大小
    scroolbars 传yes或no 表示如果内容在视口中显示不下 是否允许滚动
    status 传yes或no 表示是否显示状态栏
    toolbar 传yes或no 表示是否显示工具栏
     
    height 新窗口的高度
    left  表示新窗口的左坐标 
    top 数值 表示新窗口的上坐标
    width 表示新窗口的宽度
    关闭窗口
    var a = window.open();
    a.close(); 
    想关闭浏览器的主窗口
    如果没有得到用户的允许,代码是不能关闭浏览器的主窗口的
    想关闭弹出窗口
    在不经过用户允许的情况下,可以关闭弹出窗口自己
    window.opernr
    1 只在最外层的window对象(top中)有定义
    2 它保存着打开它的原始窗口对象
    弹出窗口 和 原始窗口
    的关系
    弹出窗口有一个指针指向打开它的原始窗口
    但原始窗口中并没有这样的指针指向弹出窗口
    什么时候设置opener=null
    告诉浏览器新创建的标签页不需要与打开它的标签页通信
    因此可以在独立的进程中运行
    标签页之间的联系一旦切断 将没有办法恢复
    防止恶意广告弹窗
    禁用了window.open()自动执行
    只能通过用户点击 来执行
    如何判断一个窗口被屏蔽
    var wroxWin = window.open();
    if( wrowWin == nulll ){
         表示这个窗口被屏蔽 ;
    }
    间歇调用和超时调用
    javascript是单线程语言
    最好不要用间歇模式 因为后一个间歇调用可能会在前一个间歇调用结束之前结束
    系统对话框
    alert confirm prompt 
    都是同步和模态的
    confirm
    获得用户点击的是确定 还是 取消
    var result = confirm( "test" ) ;
    prompt
    获得用户输入的文本
    var result = prompt("test")
    location 
    它既是 window 也是 document 的属性
    location的属性
    hash
    pathName  /students/img
    port 80
    protocol  http:
    search $q=javascript
     
    除了hash,修改其它属性时,页面都会以新的url重新加载
    location的位置操作
    location.assign( url ) ;
    window.location = url 
    location.href = url 
    想实现 不能回到上一个页面
    location.replace( newUrl );
    reload
    reload( ) 可能从缓存中加载
    reload( true ) 一定从服务器端加载
    navigator对象
    用于保存浏览器信息
    appCodeName 浏览器的名称
    appName 浏览器的名字
    cookieEnabled cookie是否能用
    cpuClass 客户端计算机的cpu类型
    onLine 是否连着网
    platform 什么平台
    plugins 插件数组
    vendor 浏览器品牌
    vendorSub 有关供应商的次要信息
    判断是否有某个插件
    function hasPlugin( name ){
          name = name.toLowerCase();
          for( var i = 0 ; i < navigator.plugins.length ; i ++ ){
              if( navigator.plugins[i].name.toLowerCase().indexOf(name) > -1 {
              return true
    }
         return false ;
    }
     
    hasPlugin("flash");
    检测IE中的插件
    function hasIEPlugin( name )
    {
        try{
            new ActiveXObject( name );
            return true 
        }catch( ex )
            return false 
    }
    判断插件的总方法
    function hasFlash()
    {
          var result = hasPlugin(“Flash" ) ;
          if( !result ){
                result = hasIEPlugin( "ShockwaveFlash.ShockwaveFlash");
          }
          return result
    }
    将一个站点注册为处理RSS源的处理程序
    navigator.registerContentHandler("application/rss+xml", "http://www.somereader.com?feed=%s", "Some Reader")
    1 RSS源的MIME类型
    2 接收RSS源的URL 其中%s表示 RSS源的URL,由浏览器自动插入
    3 应用程序的名称
    registerProtocolHandler
    navigator.registerProtocolHandler("mailto","http://www.somemailclient.com?cmd=%s","Some Mall Client"); 
    screen对象
    只用来表明客户端的能力
    window.resizeTo( screen.availWidth, screen.availHeight ) ;
    P214
    history对象
    history.go( - 1 );
    history.go( 1 );
    history.go( 2 ) ;
    history.go( "wrox.com");
    history.back();
    history.forward();
    如何确定用户是否一开始就打开了你的页面
    if( history.length == 0 ){
     
    }
  • 相关阅读:
    ABP框架理论研究总结(典藏版)
    ABP系列文章总目录:
    使用NServiceBus开发分布式应用
    shell脚本进阶 详解及其实例(一)
    linux模拟实现主机跨路由通信
    网络管理之基础知识详解
    RAID RAID 大揭秘~
    磁盘管理(一)磁盘结构
    如何在centos7上安装源码包
    压缩与解压缩
  • 原文地址:https://www.cnblogs.com/jason-beijing/p/7235937.html
Copyright © 2011-2022 走看看