我有一个写网站url的文本框.我在旁边放了一个按钮.
我想如果用户从任何地方复制网址并单击该按钮,则复制的网址粘贴在该文本框中.
现在我可以使用ctrl + v将url粘贴到文本框中.但是移动用户无法使用它.因此,我需要在文本框中单击该按钮复制的URL粘贴.
任何帮助高度赞赏,并提前感谢.
一些WYSIWYG编辑器如何保持粘贴文本的格式?作为一个例子,我将斜体红色文本从文本编辑器复制到WYSIWYG,它保留了文本的颜色和样式,这是怎么回事?对于最长的我认为JavaScript只能访问剪贴板文本.这不是这种情况吗?如果是这样,那是什么?
我发现当Hello使用鼠标粘贴文本(即)时,以下函数将抛出一个空的弹出窗口:
$('input:text').onpaste = function()
{
alert($('input:text').val());
});
Run Code Online (Sandbox Code Playgroud)
问题是,当onpaste事件被触发时,文本实际上还没有粘贴到输入字段(至少这是我的猜测).所以将功能更改为:
$('input:text').onpaste = function()
{
setTimeout(function()
{
alert($('input:text').val()
}, 100);
}
Run Code Online (Sandbox Code Playgroud)
通过Hello在粘贴到输入字段时显示带有文本的弹出窗口来提供正确的结果.
现在我的问题是:是否有可能在不使用该setTimeout()功能的情况下捕获粘贴的文本?这种解决方法看起来很脏,所以我很乐意不必使用它.
kkthxbai xon1c
有人可以解释这个网站如何访问剪贴板的内容并显示它?
我正在开发一个类似的项目,需要利用这个功能,用户可以通过ctrl + v粘贴图像.此外,如果该网站使用的是Java插件,为什么我的Chrome不会弹出过时的警告?
任何帮助表示赞赏!
谢谢.
我想在元素上触发onpaste事件来检索剪贴板中的数据(我想检查剪贴板中是否存在图像并将其上传到服务器中).它在Chrome上运行得很完美:
$('#textarea')[0].onpaste = function(event)
{
var items = event.clipboardData.items;
if (items.length)
{
var blob = items[0].getAsFile();
var fr = new FileReader();
fr.onload = function(e)
{
alert('got it!');
}
fr.readAsDataURL(blob);
}
}
Run Code Online (Sandbox Code Playgroud)
在Firefox上不起作用:event.clipboardData.items不存在.您是否知道如何在元素中检索onpaste事件?
我在文本框中捕获了cut事件(jquery).我想要的是在切换事件触发期间获取文本框上的文本.
我尝试通过evt.originalEvent.clipboardData.getData('text')访问用户剪切的数据,但返回undefined.
我的目标是知道用户是否剪切了所有文本(文本框现在为空).
提前致谢
我看到当我尝试在onpaste调用其函数时从textarea字段读取值时,我得到字段的旧值(粘贴操作之前的值),而不是新值(粘贴操作之后的值).
以下是此行为的演示:http://jsfiddle.net/qsDnr/
代码的副本如下:
<!DOCTYPE html>
<html>
<head>
<title>On Paste</title>
<script type="text/javascript">
var textareaElement;
var previewElement;
function update()
{
previewElement.innerHTML = textareaElement.value;
}
window.onload = function() {
textareaElement = document.getElementById('textarea');
previewElement = document.getElementById('preview');
textareaElement.onpaste = update
}
</script>
</head>
<body>
<textarea id="textarea">
</textarea>
<div id="preview">
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您可以使用以下步骤确认行为.
foo到剪贴板.foo出现在div元素中.因为我想要的div元素始终显示什么是与粘贴操作textarea元素更新,所需的输出foo,并foo foo在步骤2和步骤分别3.
我设法获得所需输出的一种方法是通过延迟update()函数调用window.setTimeout(),而不是
textareaElement.onpaste = update
Run Code Online (Sandbox Code Playgroud)
我有
textareaElement.onpaste = function() {
window.setTimeout(update, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令从TS1.6中的剪贴板访问数据:
$(container).bind("paste", (e) => {
var data = e.originalEvent.clipboardData.getData('text');
});
Run Code Online (Sandbox Code Playgroud)
但它只是给我以下构建错误:
类型'JQueryEventObject'上不存在属性'clipboardData'
如果我删除第二行并在Chrome 46中调试它,我只需通过调用即可获得剪贴板数据
e.originalEvent.clipboardData.getData('text');
Run Code Online (Sandbox Code Playgroud)
我看不到clipboardData在jQuery.d.ts的最新版本的JQueryEventObject接口,但问题是 - 它应该是有还是有,从目前该TS支持剪贴板检索数据以不同的方式?
我跟着这个问题JavaScript get clipboard data on paste event (Cross browser) 从剪贴板中获取粘贴的数据,但我用 jquery 代替。现在我得到了数据,我删除了所有的 html 标签。但是不知道怎么贴。
element是一个contenteditable div
element.on('paste', function (e) {
var clipboardData, pastedData;
e.preventDefault();
// Get pasted data via clipboard API
clipboardData = e.clipboardData || window.clipboardData || e.originalEvent.clipboardData;
pastedData = clipboardData.getData('Text').replace(/<[^>]*>/g, "");
// How to paste pasteddata now?
console.log(pastedData);
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试清理contentEditable div中的粘贴。也就是说,代码应类似于以下内容:
$('#content').bind('paste',function(e)
{
// Ensure pasted markup is valid
});
Run Code Online (Sandbox Code Playgroud)
理想情况下,我将能够解析粘贴的文本并以适合该站点的方式对其进行重新格式化,但我不知道该怎么做。
另外,我也可以将其粘贴为纯文本(而不是HTML),但是我也不知道该怎么做。
我对弹出带有文本区域的框,要求用户粘贴到此文本区域中,然后将文本放到上一个光标位置的内容中的解决方案不太满意。我知道该怎么做,但要避免。
而且我仅通过阻止用户粘贴就感到完全不舒服e.preventDefault()。
提前致谢。
javascript jquery copy-paste javascript-events contenteditable
javascript ×9
jquery ×8
copy-paste ×2
browser ×1
clipboard ×1
cut ×1
dom ×1
dom-events ×1
events ×1
firefox ×1
html ×1
java ×1
onpaste ×1
paste ×1
timeout ×1
typescript ×1
wysiwyg ×1