oncopy事件未在传单中触发

时间:2015-06-24 08:49:58

标签: javascript jquery html css leaflet

我想捕捉用户按 Ctrl + C 时触发的复制事件。由于某些原因,当用户与地图交互时不会触发它。 我试图自动将焦点设置在#map div上,但它没有帮助。

以下是获取oncopy事件的div的工作示例http://jsfiddle.net/669a62dn/ document.getElementById('map').addEventListener('copy', function (e) { console.log(e); });

这是一张不起作用的地图:http://jsfiddle.net/b4ueu63f/

感谢任何帮助。 谢谢!

4 个答案:

答案 0 :(得分:1)

你说“当用户与地图交互时,不会触发[复制事件]。” 但是,它对我有用。如果我在地图底部选择Leaflet | © OpenStreetMap contributors文本并按Ctrl-C,则会触发一个事件。

可能在您进行测试时,您没有选择要复制的内容,因此,当您尝试复制时,没有任何操作因为没有选择。

我认为这里的问题可能是地图本身无法选择,因此无法复制,只有地图div中的文字可以。这意味着复制事件处理程序可能没有按预期运行。

答案 1 :(得分:0)

您似乎无法在地图上触发copy事件。

但你可以像这样欺骗地图:

  • 添加一个包含要复制的所需数据的输入。
  • 点击地图:将数据添加到输入并关注它。
  • 然后,您可以在此元素上使用copy事件。

示例:http://jsfiddle.net/j381ybe1/

唯一的变化是在copy元素上触发input事件,当您点击地图时,您会在输入中插入一些文字。

答案 2 :(得分:0)

我在这里找到了一个解决方案,但在js中翻译咖啡脚本时遇到了一些麻烦,主要是因为我是新手。 How does Trello access the user's clipboard?

import { Dispatcher } from 'flux';
const dispatcher = new Dispatcher();
export default dispatcher;

最终有效。谢谢你的回答

答案 3 :(得分:-1)

适用于输入元素 看,我分叉了jsBin

http://jsfiddle.net/tb0ek6q4/

<input id='clipboard' value="HELLO WORLD!">
<div id="log"></div>

脚本

document.getElementById('clipboard').addEventListener('copy', function (e) {
  document.getElementById('log').innerHTML += e;
});

但你的意思是'客户端复制id =“map”'?