我正在寻找一种方法来清理我粘贴到浏览器中的输入,这可能与jQuery有关吗?
到目前为止,我已经设法做到了这一点:
$(this).live(pasteEventName, function(e) {
// this is where i would like to sanitize my input
return false;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于这个"次要"问题,我的发展已经开始戛然而止.如果有人能指出我正确的方向,我真的会让我成为一个快乐的露营者.
我正在使用一个明确的跨浏览器解决方案,当contentEditable ='on'<div>重新获得焦点时,将光标/插入位置设置为最后的已知位置.看来内容可编辑div的默认功能是每次单击它时将插入符/光标移动到div中文本的开头,这是不合需要的.
我相信当他们离开div的焦点时我必须在变量中存储当前光标位置,然后当他们再次聚焦时重新设置它,但是我无法将它组合在一起,或者找不到工作代码示例.
如果有人有任何想法,工作代码片段或样本我很乐意看到它们.
我还没有任何代码,但这里有我所拥有的:
<script type="text/javascript">
// jQuery
$(document).ready(function() {
$('#area').focus(function() { .. } // focus I would imagine I need.
}
</script>
<div id="area" contentEditable="true"></div>
Run Code Online (Sandbox Code Playgroud)
PS.我已经尝试过这个资源,但它似乎不适用于<div>.也许只适用于textarea(如何将光标移动到可信实体的末尾)
我有一个contenteditable元素,每当我输入一些东西并点击ENTER它创建一个新的<div>并将新的行文本放在那里.我不喜欢这一点.
是否有可能防止这种情况发生或至少只是用一个<br>?
这是演示http://jsfiddle.net/jDvau/
注意:这不是firefox中的问题.
我有一个基本编辑器,基于execCommand这里介绍的示例.在该区execCommand域内粘贴文本有三种方法:
我想只允许粘贴纯文本,不带任何HTML标记.如何强制前两个操作粘贴纯文本?
可能的解决方案:我能想到的方法是在粘贴之前为(Ctrl+ V)设置用于keyup事件的监听器并剥离HTML标签.
我有一个令人满意的div,我需要在插入位置插入文本,
这可以在IE中轻松完成 document.selection.createRange().text = "banana"
有没有类似的方法在Firefox/Chrome中实现这一点?
(我知道这里存在一个解决方案,但它不能在contenteditable div中使用,看起来很笨拙)
谢谢!
我读过jQuery Event Keypress:按下了哪个键?和我如何检查与jQuery单击事件过程中按下键?
但是我的问题是,如果你能为所有浏览器获得相同的关键事件?目前我知道Firefox给command按钮(Mac)代码224,而Chrome和Safari给它91值.是最好的方法来简单地检查用户正在使用什么浏览器并基于按下的键或是否有办法我可以在所有浏览器中获得1个关键代码吗?注意我得到的值是:
var code = (evt.keyCode ? evt.keyCode : evt.which);
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我很想不使用插件只是因为我只需要知道按下的command/ ctrl(windows系统)键.
给出一个内容可编辑的div.如何检测粘贴事件,防止粘贴被插入,以便我可以拦截和清理粘贴以仅包含文本?
粘贴+清理完成后,我也不想失去焦点.
我有一个contentEditable Div,我想删除任何格式,特别是复制和粘贴文本.
在我的网站上,用户可以将文本(在本例中为url)粘贴到输入字段中.我想捕获使用jQuery粘贴的文本的值.我使用下面的代码在FF中工作,但它在IE中不起作用(我不认为IE支持"粘贴"事件).
任何人都知道如何在所有现代浏览器中使这项工作?我已经在SO上找到了其他一些答案,但大多数都只有FF,似乎没有一个提供完整的解决方案.
这是我到目前为止的代码:
$("input.url").live('paste', function(event) {
var _this = this;
// Short pause to wait for paste to complete
setTimeout( function() {
var text = $(_this).val();
$(".display").html(text);
}, 100);
});
Run Code Online (Sandbox Code Playgroud)
JSFiddle:http://jsfiddle.net/TZWsB/1/
我试图让用户将图像粘贴到div.问题是我需要它在Firefox中工作.
根据我的阅读,自版本13以来的Firefox(我认为)不允许JavaScript访问剪贴板,并且event.clipboard不存在于剪贴板中.我知道它可以做到,因为Gmail和雅虎甚至在Firefox中也是如此.
我只是希望它无论如何都可以工作,使用jQuery,JavaScript,HTML5,只要它在最新的Firefox中工作就没关系.(虽然没有Flash).
javascript ×9
jquery ×8
html ×6
html5 ×3
command ×1
execcommand ×1
firefox ×1
formatting ×1
keydown ×1
onkeyup ×1
paste ×1
sanitize ×1