Web应用程序如何检测粘贴事件并检索要粘贴的数据?
我想在将文本粘贴到富文本编辑器之前删除HTML内容.
之后粘贴后清理文本有效,但问题是所有以前的格式都丢失了.例如,我可以在编辑器中编写一个句子并将其设为粗体,但是当我粘贴新文本时,所有格式都会丢失.我想只清理粘贴的文本,并保持以前的格式不变.
理想情况下,该解决方案应适用于所有现代浏览器(例如,MSIE,Gecko,Chrome和Safari).
请注意,MSIE有clipboardData.getData(),但我找不到其他浏览器的类似功能.
如何在<textarea>使用JavaScript中获得插入位置?
例如: This is| a text
这应该回来了7.
如何让它返回光标/选择周围的字符串?
例如:'This is', '', ' a text'.
如果突出显示"是"一词,那么它将返回'This ', 'is', ' a text'.
我有一个jquery令牌tagit插件,我想绑定到粘贴事件以正确添加项目.
我能够像这样绑定到粘贴事件:
.bind("paste", paste_input)
Run Code Online (Sandbox Code Playgroud)
...
function paste_input(e) {
console.log(e)
return false;
}
Run Code Online (Sandbox Code Playgroud)
如何获取实际粘贴的内容值?
有没有办法检测右键点击,然后在IE和Firefox上粘贴JavaScript?
更新:
我决定用Jquery来做:
$('#controlId').bind('paste', null, function() {
// code
});
Run Code Online (Sandbox Code Playgroud)
这不完全是我所看到的(因为它在"ctrl + v"以及"右键单击+粘贴"中被触发但我可以解决它.
在Chrome,Firefox 3,IE 7和IE 6上进行了测试,它正在运行
我在输入中捕获粘贴文本时遇到一些麻烦:
<input type="text" id="myid" val="default">
$('#myid').on('paste',function(){
console.log($('#myid').val());
});
Run Code Online (Sandbox Code Playgroud)
console.log显示:
default
Run Code Online (Sandbox Code Playgroud)
我如何catch粘贴文本并准备使用?
使用Javascript,如何创建一个HTML表格,可以从excel(或谷歌电子表格)"接受"数字矩阵数据,通过电子表格中的"复制",然后"粘贴"到浏览器中的表格中.
我已忽略了该paste事件。我注意到,由于阻止了事件的默认行为,因此当前无法使用Ctrl + Z撤消“粘贴”。
$(this).on('paste', function (evt) {
// Get the pasted data via the Clipboard API.
// evt.originalEvent must be used because this is jQuery, not pure JS.
// /sf/answers/2088211891/
var clipboardData = evt.originalEvent.clipboardData || window.clipboardData;
var pastedData = clipboardData.getData('text/plain');
// Trim the data and set the value.
$(this).val($.trim(pastedData));
// Prevent the data from actually being pasted.
evt.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以覆盖撤消功能,或者可以做其他不同的操作以使Ctrl + Z起作用?
我想用jQuery监视我的textarea的变化.我可以用keyup事件做到这一点,它完美无缺.但是当用户点击textarea(右键单击)时,我可以获得什么事件,然后选择粘贴?
仅当用户在textarea上单击鼠标左键时才会发生Click事件.
我该如何处理这种情况?
目前我正在为项目开发一个功能,而event.keyCode出现对"on input"触发器不起作用.我正在使用Google Chrome 31和jQuery 1.10.2.
这是我在我的方法中尝试的内容:
input.on('input', function(event){
console.log("event.charCode: " + event.charCode);
console.log("event.keyCode: " + event.keyCode);
console.log("event.which: " + event.which);
console.log("window.event ? event.keyCode : event.which: " + window.event ? event.keyCode : event.which);
});
Run Code Online (Sandbox Code Playgroud)

我得到undefined了所有这些方法.我做错了什么或这是一个jQuery/Javascript问题?在这里你可以找到小提琴.
当用户在其中粘贴内容或以任何方式更改输入内容时,我希望我的输入触发.
ps:我的方法按预期工作,唯一不起作用的是......这个.
如何在Angular 1.1.5的输入中执行"粘贴"事件的功能?我知道有一个ng-change输入指令.但每次输入更改时它都会触发,我在初始粘贴时只需要一次.
用例:我有一个URL输入.我想在用户粘贴URL后执行一个函数.用户也可以手动输入URL并按Enter键执行该功能.
-
更新:自Angular 1.2.0起,ngPaste是一个原生指令.
javascript ×8
jquery ×6
paste ×3
events ×2
textarea ×2
angularjs ×1
caret ×1
clipboard ×1
copy-paste ×1
cursor ×1
html-table ×1
input ×1
spreadsheet ×1
undo ×1