マップのドラッグを停止するためにGoogleマップがどのイベントに依存しているかは完全にはわかりませんが、デモをいじってみる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 でページをざっと見ました。ただし、ドラッグ バグがそこで発生しているようには見えないため、その場合に提供する価値はないかもしれません。幸運を!