我想捕捉用户按 Ctrl + C 时触发的复制事件。由于某些原因,当用户与地图交互时不会触发它。 我试图自动将焦点设置在#map div上,但它没有帮助。
以下是获取oncopy事件的div的工作示例http://jsfiddle.net/669a62dn/ document.getElementById('map').addEventListener('copy', function (e) {
console.log(e);
});
这是一张不起作用的地图:http://jsfiddle.net/b4ueu63f/
感谢任何帮助。 谢谢!
答案 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
<input id='clipboard' value="HELLO WORLD!">
<div id="log"></div>
脚本
document.getElementById('clipboard').addEventListener('copy', function (e) {
document.getElementById('log').innerHTML += e;
});
但你的意思是'客户端复制id =“map”'?