查明所选文本是否在输入字段或文本区域内
Find out if a selected text is inside a input field or textarea
我正在创建一个chrome扩展。
当你选择一个文本时,我在网页上添加了两个按钮。
如果选择在文本区或输入框内,我不希望发生任何操作。
这是我目前使用的代码
$(document).on("mouseup", function(e) {
var class1=e.target.nodeName;
var class2=e.target.firstChild;
console.log(class1);
console.log(class2);
if(class1=="INPUT" || class1=="TEXTAREA"){
}
else{
var selectedtext=window.getSelection().toString();
var chars=selectedtext.length;
if(chars>2){
var posx=e.clientX;
var posy=e.clientY;
var scrollDepth=$(window).scrollTop();
posy=posy+scrollDepth;
var location=findSelectionCoords(posx,posy);
create_Button(location);
}
}
});
Create button函数用于创建按钮。
如果用户在文本区/输入框中选择了一些文本,此功能将工作,控制台显示输入/文本区。但有时文本区或输入框也会被选中然后这个函数就会失败。在class1中,我在这种情况下得到DiV。
有没有人建议一个函数可以在所有情况下工作,并检测文本选择是否在输入或文本区域内
Thanks in advance
下面是示例代码,其中只有当mouseup
事件来自非文本类型的textarea
或input
元素时才显示警告消息。
编辑代码:
$(function() {
var isInputOrTextarea = false;
$(document).on("mousedown", function(e) {
// On mousedown flag whether it was clicked in input or textarea
if($(e.target).is("textarea,input[type=text]")) {
isInputOrTextarea = true;
}
});
$(document).on("mouseup", function(e) {
if($(e.target).is("textarea,input[type=text]") || isInputOrTextarea) {
isInputOrTextarea = false;
return;
}
isInputOrTextarea = false;
alert("Not in text area or input");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text" value="Lorem ipsum"/>
<textarea>
Lorem ipsum
</textarea>
<p>
Lorem ipsum
</p>
只是在javascript中,一个如何从输入中清除事件的示例。这是一行。
document.onkeydown = function (ev) {
switch (ev.key) {
case 'ArrowRight':
if (!ev.shiftKey && ['INPUT','TEXTAREA'].indexOf(ev.srcElement.nodeName) == -1)
advance();
break;
default:
console.log(ev.key);
}
};
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用jquery将输入字段转换为文本
- 如何从查询字符串中的输入字段发回文本
- 表单输入字段随着溢出的文本而增长
- 使用单个文本框向多个字段添加严格搜索
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 使用jQuery的输入字段文本换行
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 模拟文本输入字段上的退格键
- 输入字段中的可持续文本
- 未获取文本输入字段的值
- 没有文本安全性的密码字段
- 将禁用的输出字段更改为带前缀的文本
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 使用SAPUI5中的“文本”字段显示正确的“日期”
- Kendo,如何将MVVM文本:字段绑定到远程DataSource