2007年3月8日 星期四

Hacking msn MAP api 之 我不要 zoom-in!!

手上的AP架在msn map api 上頭
開發的過程中不得已要和一些細微的地方打架
比如...zoom-in, 我們希望zoom-in level是fix 的
但是無法控制map一碰到dbclick或滑鼠捲動就自動zoom-in的衝動 囧

MSN map api無法讓你有地方將zoom-in 取消
怎麼半?打開map api的source code後
發現註冊在double click和wheel的事件也是private method.
亦即在外頭無法detach event ...
修改它的source code又怕違法

最後想出一個 怪招
確定它的event handle model是bubble up之後
將map div 下的子節點全load 出來,註冊double click及wheel事件為canclebubble=true....

這個解法是絕對依賴msn api吐出的dom 結構
一旦改版很有可能就不work了,或是會影響到其它的功能也未可知
不過有價值的部份是canclebubble up也可以拿來這樣用。雖然acess 不到map 內部的private method. 但是仍然可由這種方法讓它不執行....

沒有留言: