用户操作
[即时聊天] [发私信] [加为好友]
ddeeID:ddee_luozaiqian
13126次访问,排名9172,好友0人,关注者11人。
ddee_luozaiqian的文章
原创 56 篇
翻译 0 篇
转载 3 篇
评论 25 篇
ddee的公告
书到用时方恨少,是非经过不知难
--陆游   

2008-5-12之后重新启动 博客园 的更新,谢谢关注。
最近评论
okvee:我也遇到一个老火问题
开始是用jquery.ajaxcontent做的,每次都要加载一个属性。
后来改用jquery.history,那个属性就不行了。
冰儿-丫丫:请问你之前的修改是怎么进行的?我试了一下改变编码格式好像是不行的。
algcfx:Wow gold
游客:用jdbc
foxiang:金樽清酒斗十千,玉盘珍羞直万钱。
停杯投箸不能食,拔剑四顾心茫然。
欲渡黄河冰塞川,将登太行雪满山。
闲来垂钓碧溪上,忽复乘舟梦日边。
行路难,行路难,多歧路,今安在?
长风破浪会有时,直挂云帆济沧海。
文章分类
收藏
    相册
    my
    .NET
    castle
    nvelocity
    velocity
    CAD
    CAD世界
    明经通道
    晓东CAD空间
    Web
    ajaxian
    javascript toolbox
    lightbox
    prototype
    prototype-window
    rico
    script.aculo.us
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 同域跨站时,事件处理的微妙问题收藏

    新一篇: RTM、RC、CTP版本的含义 | 旧一篇: 使用ajaxEngine发送请求时带多个参数

    在跨越站点,并且同域的情况下,若将一边的事件订阅在另一边处理则要注意很多隐秘、微妙的问题。
    首先是订阅方式,若采用 prototype 库中的 Observer 方式来订阅,它内生会把 event 作为参数传递到方法中;若采用 event property、attachevent 方式订阅,对于 ie 则需要使用 window.event 全局变量,对于 ff 则会将 event 作为参数传入。
    在同域跨站的情况下,对于 ff 应该不会有太大的问题(还需要试验一下),因为它将 event 作为参数传递,同域跨站的情况是可以使用另一站点对象的引用的。但是对于 ie 则不行了,因为它是通过 window.event 全局变量来访问的,所以在另一站点中 event 变量会为空的。
    若是在使用了 prototype,则会将事情搞得更加的微妙。因为按照 prototype 的源码,它在 Observer 事件时,对于处理函数,它会在 apply 时,将 event 变量作为参数传递给处理函数,以便屏蔽掉 ie 和 ff 兼容性的问题,但是由于在 prototype 的源码中,它使用的是 window.event,所以传递给处理函数的 event 应该还是一个 null。

    Function.prototype.bindAsEventListener = function(object) {
      
    var __method = this;
      
    return function(event) {
        
    return __method.call(object, event || window.event);
      }

    }

     


    所以对于同域跨越站点的事件处理时,应该做到一下两点:

    1. 保持事件处理函数兼容性(这点应该写 js 的基本素质)。
       on××× : function (event) {
        event 
      = event || window.event;
       }
    2. 通过获得其他站点的 dom 对象(如 iframe 变量,若未 bind,则可以通过 this 获得),然后获取 window,最后取得 event,从而取得事件的上下文情况。
      ×××dom.document.parentWindow.event;  

    发表于 @ 2006年11月15日 09:09:00|评论(loading...)|编辑

    新一篇: RTM、RC、CTP版本的含义 | 旧一篇: 使用ajaxEngine发送请求时带多个参数

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © ddee