易截截图软件、单文件、免安装、纯绿色、仅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窗口及输入输出 [7]

JavaScript是基于对象的脚本编程语言,那么它的输入输出就是通过对象来完成的。其中有关输入可通
过窗口(Window)对象来完成,而输出可通过文档(document)对象的方法来实现。
一、窗口及输入输出

看下面例子:
<HTML>
<Head>
<script
languaga="JavaScript">
Var test=window. ......

javascript笔记

定义变量
var test=10;
使用对象属性
可以使用 . 操作符获得属性,也可以使用数组下标获得,比如
for(var prop in document)
document.write(document[prop]+"<br>");
With 声明对象,之后再用到对象就不必声明了
with(document){
write("Hello World<br>标题: ");
write(title);
}
常用对象 ......

【推荐】十个开源的Javascript框架


 
下面是十个最牛的也是最流行的Javascript框架。它们完全可以担任目前世界上几乎所有一些和Ajax技术相关的和图形界面相关的一切功能。
jQuery
http://jquery.com/
如果今天你还不知道jQuery的话,那么作为一个程序员你可能真的是从火星来的了。这恐怕是Ajax中应用最广的框架。包括了许多很不错的UI组件,做出网 ......

CSS+JavaScript实现层级显示隐藏

/***************************by
garcon1986********************************/
感谢CSDN的shan1119 帮我解决Javascript部分的错误。
<mce:script language="JavaScript"><!--
function toggle(id,id2,id3) {
var state = document.getElementById(id).style.display;
if (state == 'block') {
......

kangax 的javascript谜题

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

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

//根据标准,命名函数表达式的函数名只对函数 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号