我不完全确定谷歌地图依赖什么事件来停止拖动地图,但只是在玩你的演示时,我注意到当你mouseup
进入 iframe 时它会停止。如果您mouseout
在 iframe 上模拟此事件,Google 地图会认为您放开那里的地图并停止拖动。
我从控制台内部尝试了这段代码,它工作正常:
var iframe = document.getElementsByTagName('iframe')[0];
iframe.addEventListener('mouseout', function(e){
var doc = this.contentDocument || this.contentWindow; // wk/moz vs. ie
doc = doc.document || doc; // opera
if (doc.createEvent) {
var evt = doc.createEvent('MouseEvents');
evt.initMouseEvent('mouseup', true, false, window,
0, e.screenX, e.screenY, e.clientX, e.clientY,
false, false, false, false, 0, null
);
doc.getElementsByTagName('body')[0].dispatchEvent(evt);
} else if (doc.createEventObject) { // legacy ie
var evt = doc.createEventObject(e);
doc.getElementsByTagName('body')[0].fireEvent('mouseup', e);
}
});
这适用于 FF、Safari、Chrome 和 Opera。我在没有应用修复的情况下快速浏览了您在 IE 中的页面。但是,看起来那里甚至没有发生拖动错误,因此可能不值得为这种情况提供。祝你好运!