易截截图软件、单文件、免安装、纯绿色、仅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则显示章节的具体内容。
  框架可以将屏幕分割 ......

Javascript常用屏蔽

1 >屏蔽功能类
1.1 屏蔽键盘所有键
<script. language="javascript">
<!--
function document.onkeydown(){
  event.keyCode = 0;
  event.returnvalue = false;
}
-->
</script>
1.2 屏蔽鼠标右键
在body标签里加上oncontextmenu=self.event.returnvalue=false
或者
<scri ......

JavaScript 技巧

事件源对象
event.srcElement.tagName
event.srcElement.type 捕获释放
event.srcElement.setCapture();  
event.srcElement.releaseCapture();  事件按键
event.keyCode
event.shiftKey
event.altKey
event.ctrlKey 事件返回值
event.returnValue 鼠标位置
event.x
event.y 窗体 ......

[转]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号