易截截图软件、单文件、免安装、纯绿色、仅160KB

Javascript: onresize

浏览器:IE 8、FF 3.6、Chrome 4.0、Safari 4.0、Opera 10.1
仅有IE浏览器支持HTMLElement.onresize(比如body.onresize)
其它浏览器只支持window.onresize
先说IE的HTMLElement.onresize
使用前请确定你的心脏及血压正常,如果你定义了
body.onresize = function(){……}或者html.onresize = obj.fun;
你猜猜this指针是谁?不是body,不是html,不是obj,而是window!
这样清况下如果:
function fun(){
……
};
html.onresize = fun;
body.onresize = fun;
document.getElementById("id").onresize = fun;
以上代码完全可用,只是fun执行时,你根本不知道是哪个元素激发的。什么?你说event对像里会不会有激发的元素?肯定的说:没有!
好了,我们放轻松,没办法就没办法吧。大不了我就不管是谁激发的全都处理一遍。不过还是先看下面的代码:
function addresize(element){
element.onresize = function(){
……
};
};
addresize(body);
addresize(html);
addresize(#id);
你猜猜在onresize执行时的this是谁?别想了,还是window!
灵异的事情发生了,在省略号的代码中你可以使用element变量!也就是addresize的参数,这个参数是事件激发元素。
为这个事我晕了好几天,到现在都没想明白这个语法规则,当作一个特殊用法吧。
下面说window.onresize
在IE中这个事件很好用,当窗口容量大小发生变化时就会激发!(注意黑体字)
在其它浏览器中就有问题了,它仅在窗口大小发生变化时激发。
这里就有区别了:
当我想让某个元素充满整个窗口,这样的话在window.onresize时就需要改变它的style.width/height
在IE中没有任何问题,其它游览器在缩小时就出现问题了:
整个事件的流程是这个样子的:
1、window改变大小,这里特指缩小。
2、浏览器发现容纳不下内容,给html添加了滚动条,可视区域更小了。
3、浏览器激发了window.onresize事件代码。你在这里更改了元素的大小。
4、浏览器发现可以容纳下内容了,取消了滚动条。
5、IE在此时再次激发onresize、其它浏览器略过此步
这时除IE外,你的元素会少一个滚动条的大小。
解决方案:
除了IE之外的浏览器请连续设置两次大小。每次都是取body.client/offset大小就行了。


相关文档:

用JavaScript实现更复杂的交互 [9]

一、什么是框架
  框架Frames最主要功用是"分割"视窗,使每个"小视窗"能
显示不同的HTM
L文件,不同框架之间可以互动(interact),这就是说不同框架之间可以交换讯息与资料。例如:假设您开了两个frames,第一个frame可显
示书的目录,第二个frame则显示章节的具体内容。
  框架可以将屏幕分割 ......

kangax 的javascript谜题

第一题
(function(){
return typeof arguments;
})();
//问自动执行函数会返回什么值

// 就是考Arguments对象的typeof
// 看平时用firebug多不多了……
第二题
var f = function g(){ return 23; };
typeof g();
//问最后一行的执行结果

//根据标准,命名函数表达式的函数名只对函数 ......

用Javascript来操作Cookie

网站经常用到的一个东西用来暂存一些相关信息的Cookie有优点也有缺点,它能够不占用服务器资源,存储在客户端的电脑里,可这样也有一定的危险性,因为相关信息比如说登录某个网站的用户名和密码之类的信息,都会存在客户端的电脑里,这样会被某些“有心之人”利用,所以,有些人习惯在公共场合使用完电脑后清掉Co ......

JavaScript实现水平选项卡效果

首先在body中加入以下HTML内容:
<div id="panel">
 <div id="top">
        <ul id="menu">
            <li id="1">Home</li>
 &nbs ......

[转]Top 10 Things that JavaScript Got Wrong

to make a note that I love JavaScript. This article is only meant for some fun, and for us to be aware of some its short-comings.
1. The Name. JavaScript is NOT Java
We'll start with a fun jab at the name choice. While it was originally called Mocha, and then LiveScript, it was later changed to J ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号