1  窗口的位置

用来确定和修改 window 对象位置的属性和方法有很多。

IE 、 Safari 、 Opera 和 Chrome都提供了 screenLeft 和 screenTop 属性,分别用于表示窗口相对于屏幕左边和上边的位置 。
Firefox 则在 screenX 和 screenY 属性中提供相同的窗口位置信息, Safari 和 Chrome 也同时
支持这两个属性。

// 跨浏览器的方法
var leftX = (typeof screenLeft == 'number') ? screenLeft : screenX ;
var topY = (typeof screenTop == 'number') ? screenTop : screenY;

2.窗口页面大小

   Firefox 、 Safari 、 Opera 和 Chrome 均为此提供了 4 个属性: innerWidth和 innerHeight , 返回浏览器窗口本身的尺寸 ; outerWidth 和 outerHeight , 返回浏览器窗口本身及边框的尺寸。 

  在 IE 以及 Firefox 、 Safari 、 Opera 和 Chrome 中 , document.documentElement.clientWidt h

和 document.documentElement.clientHeight 中保存了页面窗口的信息。
PS :在 IE6 中,这些属性必须在标准模式下才有效;如果是怪异模式,就必须通 过
document.body.clientWidth 和 document.body.clientHeight 取得相同的信息。

 跨浏览器获取窗口的页面大小

var width = window.innerWidth; // 这里要加 window ,因为 IE 会无效
var height = window.innerHeight;
if (typeof width != 'number') { // 如果是 IE ,就使用 document
if (document.compatMode == 'CSS1Compat') {
width = document.documentElement.clientWidth;
height = document.documentElement.clientHeight;
} else {
width = document.body.clientWidth; // 非标准模式使用 body
height = document.body.clientHeight;
}
}

3. 调试工具

IE8 、 Firefox 、 Chrome 、 Opera 、 Safari 都自带了自己的调试工具 , 而开发人员只习惯 了
Firefox 一种 , 所以很多情况下 , 在 Firefox 开发调试 , 然后去其他浏览器做兼容 。 其实 Firebu g
工具提供了一种 Web 版的调试工具: Firebug lite 。
以下是网页版直接调用调试工具的代码:直接复制到浏览器网址即可。
javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.doc
umentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);
E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(doc
ument,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','rele
ases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');

JS地毯式学习四的更多相关文章

  1. JS地毯式学习三

    1. 插件是一类特殊的程序 . 他可以扩展浏览器的功能 , 通过下载安装完成 . 比如 , 在线音乐.视频动画等等插件. // 检测非 IE 浏览器插件是否存在function hasPlugin(n ...

  2. JS地毯式学习二

    1.递归算法 a. function box(num){if(num<=1){ return 1;}else{ return num*box(num-1);}}alert(box(5)); b. ...

  3. JS地毯式学习一

    1.<noscript> 现代浏览器都对JavaScript进行了支持,一般是在用户的浏览器禁用了脚本的情况下才会显示<noscript>的内容. 包含在<noscrip ...

  4. RabbitMQ学习系列四-EasyNetQ文档跟进式学习与实践

    EasyNetQ文档跟进式学习与实践 https://www.cnblogs.com/DjlNet/p/7603554.html 这里可能有人要问了,为什么不使用官方的nuget包呐:RabbitMQ ...

  5. Underscore.js 源码学习笔记(下)

    上接 Underscore.js 源码学习笔记(上) === 756 行开始 函数部分. var executeBound = function(sourceFunc, boundFunc, cont ...

  6. TweenMax动画库学习(四)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  7. 深入js隐式类型转换

    前言 相信刚开始了解js的时候,都会遇到 2 =='2',但是 1+'2' == '1'+'2'为false的情况,这时候应该会是一脸懵逼的状态,不得不感慨js弱类型的灵活让人发指,隐式类型转换就是这 ...

  8. Web前端-Vue.js必备框架(四)

    Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...

  9. SVG 学习<四> 基础API

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

随机推荐

  1. Tomcat自带log的配置详解

    最近几天被日志搞得烦死了,不详细了解不行呀! Tomcat根目录文件作用说明 根目录下有bin,conf,lib,logs,temp,webapps,work 7个文件夹 bin目录 主要是用来存放t ...

  2. iOS-高仿支付宝手势解锁(九宫格)

    概述 高仿支付宝手势解锁, 通过手势枚举去实现手势密码相对应操作. 详细 代码下载:http://www.demodashi.com/demo/10706.html 基上篇[TouchID 指纹解锁] ...

  3. kubectl命令使用

    语法:   kubectl  [command]  [TYPE] [NAME]  [flags]   1 command:子命令,用于操作Kubernetes集群资源对象的命令,如create, de ...

  4. 关于iOS Category实现添加属性及成员变量

    iOS分类: 很多说法是只能添加方法,而不能添加成员变量或属性. 有些人可能知道,这种说法是不严谨的,并不是绝对不能添加变量. 解释如下: 我们知道在一个类中用@property声明属性,编译器会自动 ...

  5. 锋利的jQuery(第二版)源码下载地址

    书上给的http://cssrain.sinaapp.com无法访问 问作者邮箱要的: 第1版源码:百度云盘下载:http://pan.baidu.com/share/link?shareid=104 ...

  6. 傅立叶级数(Fourier Series)和周期现象

    一.前言 如果你仔细观察,工作和生活中充满了周期现象:旁边linux driver工程师在调试audio driver的时候播放的1kHz的正弦信号,周末去公园游玩,游船推开水面的波纹,硬件工程师调试 ...

  7. Git 基本分支规范

    基本代码分支应该分为两类,一类是主要分支,包括线上主分支 Master 和开发主分支Develop:另一类是辅助分支,包括测试分支 Release,线上紧急修复分支 Hotfix,以及功能开发分支 F ...

  8. mysql查询-不存在记录时赋对应的数据

    使用mysql数据库,执行查询的时候,有时候就不存在记录,但是正好在不存在记录的时候又需要给赋予相应的查询结果字段,代码实现如下: select IFNULL(('), '1970-01-01 00: ...

  9. python 例程的一个好例子

    用例程来写一个求平均值的算法 #!/usr/local/python/bin/python3 def FunCore(): total=0 counter=0 average=None tmp=yie ...

  10. AngularJS概述-3D

    最近工作需要用到,接触的比较多,在此系统学习一下. angular.js 是新一代web MVC开发框架,对应 模型,视图,控制器.,相比 jquery 模式,这种新玩意竟然不需要开发者直接去操作do ...