javascript - 查明所选文本是否位于输入字段或文本区域内

标签 javascript jquery selection textselection

我正在创建一个 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);
}
}
});

创建按钮函数用于创建按钮。

如果用户在文本区域/输入框中选择一些文本,此功能将起作用,控制台将显示输入/文本区域。 但有时文本区域或输入框也会被选中,然后此功能会失败。在 class1 中,在本例中我得到 DiV。

有人可以建议一种在所有情况下都有效的函数,并检测文本选择是否位于输入或文本区域内

提前致谢

最佳答案

以下是示例代码,其中仅当 mouseup 事件来自非 textareainput 的元素时才会显示警报消息> 文本类型。

编辑代码:

$(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 - 查明所选文本是否位于输入字段或文本区域内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760345/

相关文章:

javascript - 无法将更改事件绑定(bind)到 ajax 调用的文件输入

java - JTextField/JTextComponent 中的选择有限?

silverlight - 如何在 Silverlight 4 中使用 RichTextBox 进行选择对齐?

javascript - 是否可以异步运行 WebAssembly 代码?

javascript - Firebug 的 jQuery 不会在我的网站上加载

javascript - 使用 $.getJSON 获取 url 并正确解析它

javascript - 设置cookie只播放一次动画(jquery)

javascript - 使用 javascript 和 jQuery 添加表

javascript - iframe 中的 Jplayer 控件

javascript - 如何设置向后选择?