jquery:选择文本事件

2023-11-22

当用户选择一些文本(非文本区域或输入)时,jquery 是否可以调用我的回调来让我知道选择了哪个 div 的文本,并且如果选择焦点丢失也调用我的回调?

Thanks.


有点令人惊讶的是,没有简单的方法可以做到这一点。 IE 有一个select在所有元素上实现的事件,但其他浏览器从未将其扩展到输入之外。你必须处理keyup and mouseup整个文档上的事件,即使这样,当选择实际上没有更改时,您的回调也可能会被调用。


2013 年 10 月 13 日更新

WebKit 浏览器已经支持selectionchange事件于Document节点数年。 IE 到 5.5 版本也支持该事件。例子:

document.onselectionchange = function() {
    console.log("Selection changed");
};

这是一个简单的例子:

function selectCallback(selectionParentElement) {
    console.log("Selecting, parent element is " + selectionParentElement.nodeName);
}

var mouseOrKeyUpHandler;

if (typeof window.getSelection != "undefined") {
    // Non-IE
    mouseOrKeyUpHandler = function() {
        var sel = window.getSelection();
        if (sel.rangeCount > 0) {
            var range = sel.getRangeAt(0);
            if (range.toString()) {
                var selParentEl = range.commonAncestorContainer;
                if (selParentEl.nodeType == 3) {
                    selParentEl = selParentEl.parentNode;
                }
                selectCallback(selParentEl);
            }
        }
    };
} else if (typeof document.selection != "undefined") {
    // IE
    mouseOrKeyUpHandler = function() {
        var sel = document.selection;
        if (sel.type == "Text") {
            var textRange = sel.createRange();
            if (textRange.text != "") {
                selectCallback(textRange.parentElement());
            }
        }
    };
}

document.onmouseup = mouseOrKeyUpHandler;
document.onkeyup = mouseOrKeyUpHandler;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery:选择文本事件 的相关文章

随机推荐

  • SoapUI Maven 插件 - 执行多个项目

    我正在努力将 SoapUI TestRunner 的 Ant 执行转换为使用 Maven 插件 但我无法获得有关如何使用此插件执行多个项目的良好答案 我在 Smartbear 论坛上发现了 2010 年的一篇论坛帖子 其中列出了一些方法 但
  • C#、IAsyncResult 和线程池

    我用Action BeginInvoke 方法 这个是否使用线程池 我有以下 C 代码 List
  • 如何将多个文件扩展名传递给 TDirectory.GetFiles?

    TDirectory GetFiles有一个参数叫做SearchPattern Embarcadero 的文档说 匹配文件名时使用的掩码 例如 exe 匹配所有可执行文件 但是 我想传递多种文件类型 我从 a 得到这些类型FilterCom
  • iOS 7 UITableView 中的 UITextView 链接检测崩溃

    我有一个习惯UITableView单元格设置在我的UITableView像这样 UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPat
  • 如何为 JMS Serializer 创建自定义排除策略,以便我可以在运行时决定是否包含特定字段?

    正如标题所示 我试图在运行时决定是否在序列化中包含字段 就我而言 此决定将基于权限 我正在使用 Symfony 2 所以我想做的是添加一个名为 ExcludeIf 的附加注释 它接受安全表达式 我可以处理元数据的注释解析和存储 但我无法了解
  • 在 swift 中从 dataTaskWithURL 获取进度

    有什么办法可以取得进步吗dataTaskWithURL数据下载时快速 NSURLSession sharedSession dataTaskWithURL 我需要在下载数据时显示进度条 您可以简单地观察progress的财产URLSessi
  • A* 算法:封闭列表包含太多元素/太大

    我目前正在 JavaScript 中实现 A 算法 但是 我遇到了一个问题 我的 closeList 似乎太大了 这是输出的屏幕截图 什么可能导致这个问题 我的启发式计算错误吗 Node prototype getHeuristic fun
  • SQL Server 在窗口函数子句中奇怪的不一致行为?

    一边问另一个问题 我发现 SQL Server 发生在 2005 年和 2008 年 在处理时似乎有奇怪的不一致行为CASE窗口函数子句中的语句 下面的代码给出了一个错误 declare t table SortColumn int ins
  • 当块的宽度改变时是否会调用一个事件?

    我想在我监听的块的宽度发生变化时调用我的代码 如何 onresize仅当窗口大小改变时调用 一个选项可以是使用调整大小观察者 观察所有宽度变化 JS var foo document getElementById foo var obser
  • 匹配单个单词,末尾可能有标点符号或复数形式(正则表达式)

    我在正则表达式方面做得越来越好 但我想出了一些超出我目前能力的事情 我想构建一个函数来测试 返回 true 或 false 来测试是否在字符串中找到单词 但如果这个单词是在另一个单词中找到的 我不想有一个积极的匹配 我还想建立检查复数的可能
  • 如何沿着现有道路在两点之间绘制一条路线?

    我想在我的 Android 应用程序中显示两个位置之间的驾驶路线 我只想在路段顶部绘制路线 关于堆栈溢出本身有几个答案 并且所有答案都使用相同的方法 使用 Google Directions API 获取从起点到目的地的路线 并在返回的点之
  • 在 PHP 中可以使用 array[key] 吗?

    是否可以使用不带单引号或双引号的数组 例如 array key 我认为这很糟糕 因为如果我不使用单引号或双引号 PHP 首先查找常量 我的一位同事告诉我 这并不重要 你们有什么感想 不被认为是OK 即使它在大多数情况下都有效 基本上 当 P
  • 如果我不在的情况下我的计算机进入睡眠模式/休眠模式,我正在执行的硒脚本会停止吗?我

    如果我不在的情况下我的计算机进入睡眠模式 休眠模式 我正在执行的 selenium 脚本是否会停止 如果是 那么摆脱这个问题的理想方法是什么 首先 睡眠或休眠将断开您的互联网服务 其次 Hibernate 还会中断或停止许多进程 在睡眠模式
  • Cypress:具有三个不同响应的同一路由的存根响应

    我的应用程序中有一个端点 我们为每个请求使用相同的 api 并在参数中使用不同的操作 URL application api 示例请求负载 1 action CARD TRANSACTION HISTORY data date from 2
  • python中什么时候需要使用global关键字

    好吧 所以我遇到了这个非常烦人的问题 其中一个变量在本地设置 但随后在该函数之外恢复到它的旧值 在本例中为 无 但同时我可以操纵其他变量 并且仍然可以不使用 全局 关键字 我无法提供真正的代码 但它是这样的 foo foo foo bar
  • 如何在SQL Server中预编译存储过程?

    有没有办法在 SQL Server 中预编译存储过程 我的要求是这样的 我有一些存储过程 编译时间比执行时间多 所以我想预编译所有存储过程 当数据库服务器启动并运行时预编译它们会很好 任何关于这方面的想法都会非常有帮助 使用 SET FMT
  • WebView 不调整大小

    我已经为 Firefox OS 开发了一个 Web 应用程序 但我想让它在 Android 中 本地 运行 我的应用程序由一个对话框组成div它在可见时填充整个页面 我使用 Firefox 响应式设计工具对其进行了测试 并且它确实可以正确调
  • SQLite 支持引用完整性吗?

    我有一个 Django Web 服务器配置为使用 SQLite 在多对多关系 带有额外字段 中 Django 强制我使用关系模型来建立两个对象之间的关系 但我能够在相关表中尚不存在的对象之间创建关系 例如 I have table1 and
  • Django 模板如何使用变量查找字典值

    mydict key1 value1 key2 value2 在 Django 模板中查找字典值的常规方法是 mydict key1 mydict key2 如果键是循环变量怎么办 IE for item in list where ite
  • jquery:选择文本事件

    当用户选择一些文本 非文本区域或输入 时 jquery 是否可以调用我的回调来让我知道选择了哪个 div 的文本 并且如果选择焦点丢失也调用我的回调 Thanks 有点令人惊讶的是 没有简单的方法可以做到这一点 IE 有一个select在所