1

Google Maps API V3 では、ユーザーがマップをコントロールクリックした場合にマップにマーカーを追加したいと考えています。そのために、次のようにリスナーをマップに追加しました -

google.maps.event.addListener(map, 'click', function(e){
if (event.ctrlKey)
    add_marker(e.position);
});

リスナーから渡されたeパラメータにはいくつかのデータが含まれていますが、ほとんどはクリックの位置に関するものですが、ユーザーがマップをクリックしたときにコントロール ボタンが押されたかどうかを確認できるようにしたいと考えています。

クロムには、必要なデータ(ctrlKey)を含むデフォルトのJavascriptのeventObjectであるオブジェクトeventがあり、これは実際にクロムで機能することがわかりました。

しかし、同じコードを FF で試してみたところ、「イベント」というオブジェクトが見つからず、それを取得する方法が見つかりません。

IE でも動作するソリューションを見つけるためにご協力いただければ幸いです。

ありがとう、ダンC

4

1 に答える 1

1

API は、DOM-event-object へのアクセスについて何も述べていません。

コールバック関数に渡される引数には現在b、イベント オブジェクトを参照するプロパティが含まれているため、次を使用できます。e.b.ctrlKey

しかし、これは文書化されていないため、信頼性が低く、明日変更される可能性があります。

別のオプション:
API メソッドを使用せずに、マップを含む div のイベントを確認できます。

map.getDiv().onclick=function(e)
{
  e=window.event||e;
  if (e.ctrlKey)
  {
    //do something
  }
}
于 2012-06-20T11:49:44.230 に答える