嗨,我正在创建一个网络聊天应用程序,我希望用户可以从桌面复制粘贴图像或直接粘贴屏幕截图,但我无法实现它.我使用以下代码:
$("#dummy").on("paste",function(event){
var items = (event.clipboardData || event.originalEvent.clipboardData).items;
console.log(JSON.stringify(items)); // will give you the mime types
for (index in items) {
var item = items[index];
if (item.kind === 'file') {
var blob = item.getAsFile();
var reader = new FileReader();
reader.onload = function(event){
console.log(event.target.result)}; // data url!
reader.readAsDataURL(blob);
}
}
})
Run Code Online (Sandbox Code Playgroud)
在Chrome和Firefox中使用上面的代码我在图像的情况下得到Clipboarddata undefined.我在谷歌尝试了很多链接,但无法达到目标.我也试过下面的stackoverflow 链接:使用JavaScript从剪贴板粘贴图像也是以下链接:
http://strd6.com/2011/09/html5-javascript-pasting-image-data-in-chrome/
http://codepen.io/netsi1964/pen/IoJbg
任何人都可以帮我完整的例子如何实现它?
我看过很多帖子但是找不到以下两个问题的明确答案,因为看起来标准和浏览器支持一直在不断变化.
根据标准,使用event.clipboardData.setData在'copy'事件处理程序中更改剪贴板是合法的操作吗?
最新版本的Chrome/FF/Safari/IE/Chrome iOS/Android/iPhone是否支持此功能?
谢谢!
我正在使用这样的代码从剪贴板中获取文本.
Dim DataObj As New MSForms.DataObject
DataObj.GetFromClipboard
myString = DataObj.GetText
Run Code Online (Sandbox Code Playgroud)
我使用错误处理来解决剪贴板为空的情况,只要我将错误陷阱设置为未处理错误的中断,一切都很好.
但是,由于无关的原因,我想将错误陷阱设置为中断所有错误,这会在DataObj.GetText
找到空剪贴板时引发错误.是否有任何类型的测试我可以进一步上游应用以避免尝试处理空剪贴板?
我实际上是想使用角度JS来获取剪贴板的内容来模拟复制粘贴的东西.
通过浏览器(例如chrome)复制图片有两种方式,复制图片和复制图片地址。
当我复制图像地址并使用“粘贴图像”按钮粘贴它时,我可以获取从 Base64 浏览器复制的图像。但是当我复制图像时,我无法获取图像。有没有办法使用图像 coipar 来获取图像,如示例所示?
代码
clickPaste() {
let self = this;
(navigator as any).clipboard.readText().then(clipboard => self.clip = clipboard);
console.log(self.clip) // copy image adress ---> base64
}
Run Code Online (Sandbox Code Playgroud)
示例复制图像 - 不起作用
我知道复制图像和复制图像的地址是不同的事情,但是当我使用复制图像时,我无法找到如何获取图像(blob 或 base64)。
我正在尝试使用标准例程向我的Web应用程序添加图像粘贴功能:
$('textarea').on('paste', function (ev) {
var clipboardData = ev.originalEvent.clipboardData;
$.each(clipboardData.items, function (i, item) {
if (item.type.indexOf("image") !== -1) {
var reader = new FileReader();
reader.readAsDataURL(item.getAsFile());
reader.addEventListener('loadend', ...);
...
}
});
});
Run Code Online (Sandbox Code Playgroud)
完整的样本可以在这里找到:http://jsfiddle.net/t8t2zj6k/
当我从图像查看器软件复制并粘贴图像时,它可以正常工作,但是当我尝试使用文件浏览器(例如Mac上的Finder或Linux上的Nautilus)做同样的事情时,我只得到一个文本字符串使用文件路径甚至是带有文件类型图标的图像而不是原始文件.
有没有办法正确处理文件浏览器中的粘贴?
我正在尝试将 Windows 资源管理器中的文件粘贴到网页中。访问时event.clipboardData
items
,files
和types
都为空。
如果我截取屏幕截图(Ctrl + PrintScrn)或复制纯文本然后粘贴到网页中,items
并且types
填充得很好。
我在窗口上附加了粘贴事件。我正在使用最新的 Chrome。
不知道为什么今天对我这么困难,但由于某种原因我似乎无法将当前的URL复制到剪贴板.总的来说,我正在寻找一种方法来做到这一点,而无需创建一些隐藏的文本元素.
这是我到目前为止所尝试的:
var shareBtn = document.querySelector(".share-button");
shareBtn.addEventListener('click', function(event) {
var cpLink = window.location.href;
cpLink.select();
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copy command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}
event.preventDefault;
});
Run Code Online (Sandbox Code Playgroud)
当我尝试使用它时,.select()
我得到了这个错误:
t.select is not a function
所以我不是100%确定最好的方法是什么.再次,不使用jQuery(或任何其他JS库)而不使用某种隐藏的文本字段.
我有一些编辑图像文件的 Python 代码,并且想知道如何将
图像数据添加到操作系统剪贴板并从那里获取它。
当在 Python 中搜索跨平台解决方案来替换或获取剪贴板文本
时,
有许多简单的答案可以实现(例如,使用内置的 Tkinter 模块和一些代码)。
然而,这些方法只能使用纯文本,而不能使用图像等其他剪贴板数据。
我的 Python 版本在 Windows 上是 3.x,但答案需要是跨平台的
(在不同操作系统上工作),并且还应该支持其他 Python 版本,如 2.x。
我认为它应该只使用内置的Python模块,并且代码不应该太复杂(或者对其作用进行解释)。它可以是 Python 模块,因为这些文件可以包含在与可移植程序代码相同的文件夹中以避免安装。
还有一些其他相关问题可能适用于图像,但它们仅支持单个操作系统。最好的是在Python3中将图像复制到剪贴板和使用PIL和win32clipboard在python中将图像写入Windows剪贴板?。
那里描述的方法(仅适用于 Windows)似乎使用以下步骤:
from cStringIO import StringIO
使用,但对于 Python 3,使用io.BytesIO
.convert("RGB")
包含它的变量。bytes
对象),如何在单击按钮时获取剪贴板数据.. 而不是粘贴到 textarea 中。
像这样的事情:
<button onclick="seeClipBoard">Click to see your clipboard data</button>
<div id="seeData"></div>
var seeClipBoard = function() {
var data = ****************** ;
$("#seeData").html(data);
};
Run Code Online (Sandbox Code Playgroud)
我不想使用粘贴事件,但单击
谢谢!
clipboarddata ×10
javascript ×7
clipboard ×6
html ×3
html5 ×2
angular ×1
angularjs ×1
copy-paste ×1
dom-events ×1
excel ×1
jquery ×1
onclick ×1
python ×1
python-3.x ×1
typescript ×1
vba ×1
w3c ×1