Fdream's Blog
专注于WEB前端开发
Powered by Google

Mootools一个小bug

17 多云 2008-9
Fdream 发表于 Ajax Web, 已被阅读 1237 次, 评论 0 条
关键词:javascript mootools
[ 阅读字体大小: ]

在Mootools 1.2正式版中,有一个很小很诡异的bug,一般碰不上这么bt的事情。在页面里面有iframe,并且会涉及到跨域的问题时,若在页面执行过程中改变代理脚本,在改变代理脚本的前后会出现JavaScript线程假死的情况——所有的JavaScript事件都会失去响应,而此时若还原默认的脚本设置,则又可恢复正常。后来发现问题出在Event对象中,有这么几行:

参考代码: [复制代码] [保存代码]

win = win || window;
var doc = win.document;
event = event || win.event;

经测试,发现在这里居然取不到win.document——拒绝访问(Permission Denied)!打印了一下win的属性,发现已经是被mootools打包后的window对象了,但不知为何里面的所有属性都是拒绝访问。直接很裸地试着直接取“document”,居然成功了!修改此段代码如下:

参考代码: [复制代码] [保存代码]

win = win || window;
var doc = document;
try {
    doc = win.document || document;
    event = event || win.event;
}
catch (e) {
}

Related articles 您可能对这些文章也感兴趣:
Related comments 与该文相关的评论:(我也想说几句)
Add a comment 我来说两句: 
禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
arrow
用户名:   密码:  (匿名可不写) 同时注册?
验证码:   看不清?换个图片  看不清楚?换个图片

 
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.1406286 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号