Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 防止谷歌地图窃取键盘输入_Google Maps - Fatal编程技术网

Google maps 防止谷歌地图窃取键盘输入

Google maps 防止谷歌地图窃取键盘输入,google-maps,Google Maps,在此文本字段中,您可以在contenteditable字段中键入“k”和“m”,它们将正确显示 但是,如果拖动背景,您将无法键入“m”或“k”。如何阻止谷歌地图抓取这些键盘键(“k”和“m”)?它必须是可编辑的Div吗?我在div中添加了一个输入,它不会覆盖k&m HTML: <div id="map"></div> <div id="keyIn" contenteditable="true"> <input type='text' />

在此文本字段中,您可以在contenteditable字段中键入“k”和“m”,它们将正确显示


但是,如果拖动背景,您将无法键入“m”或“k”。如何阻止谷歌地图抓取这些键盘键(“k”和“m”)?

它必须是可编辑的Div吗?我在div中添加了一个输入,它不会覆盖k&m

HTML:

<div id="map"></div>
<div id="keyIn" contenteditable="true">
    <input type='text' />
</div>
$('#map').mouseup(function(){
  $('#keyIn input').focus();
});
如果它必须是可编辑的div,请告诉我,我会仔细查看。


您无法防止失去可编辑div的焦点,否则全景无法工作,但您可以存储插入符号位置并在以后恢复它(一个简单的
焦点将使插入符号转到起始位置而不是原始位置)

不幸的是,在启用contentEditable的div中,获取当前选择的方法比仅读取/设置
selectStart
值(由textareas使用)要复杂得多。最好的方法是使用外部库:

“k”和“m”键的问题仍然存在,但仅在Chrome JQuery方法中出现:

  $("div [contenteditable=true]").keypress(function(e) {
    e.stopImmediatePropagation();
  });

找到解决方案后,还有一个更简单的解决方案

创建地图实例时使用
keyboardShortcuts:false
属性

map = new google.maps.Map(document.getElementById('map'), {
  keyboardShortcuts: false,
  center: {lat: 37.7932339, lng: -122.4077706},
  zoom: 15});

伙计,解决方案有进展吗?非常接近!它确实需要是可编辑的内容。(我正在使用的文本框需要根据用户输入增长。)我现在已经从我的应用程序中删除了地图功能,不需要解决方案。不过,还是有一个有趣的问题。@arby也许你可以在这个插件中使用Textarea
  $("div [contenteditable=true]").keypress(function(e) {
    e.stopImmediatePropagation();
  });
map = new google.maps.Map(document.getElementById('map'), {
  keyboardShortcuts: false,
  center: {lat: 37.7932339, lng: -122.4077706},
  zoom: 15});