有没有办法在 Chrome 和/或 IE 中使用 JS 选择多个文本区域?

2024-04-16

Firefox 3 可以使用 JS 选择多个文本区域。 有没有办法在 Chrome 和 IE 中做到这一点?

我真的试图找到一种方法来选择多个 Chrome 和 IE9 中网页中的文本区域。


信息位于:http://help.dottoro.com/ljxsqnoi.php http://help.dottoro.com/ljxsqnoi.php


示例位于:http://jsfiddle.net/t3sWz/ http://jsfiddle.net/t3sWz/


仅限FireFox3.5+代码...(但这就是问题):

<html>

<head>
    <meta charset="UTF-8">
    <style>
        #trigger { background: yellow }
    </style>
</head>

<body>
    <p id="test">
        This is some text you can highlight by dragging or clicking below.
    </p>
    <span id="trigger">
        Click here to select "This" and "some"
    </span>
    <a> - Firefox only :-(</a>
    <br>
    <br>
    <br>
    <br>
    <br>
    <input type="button" value="Get selection" onmousedown="getSelText()">
    <form name=aform>
        <textarea name="selectedtext" rows="5" cols="20">
        </textarea>
    </form>
    <script>
        var testCase = function() {
            var userSelection;

            if (window.getSelection) {
                userSelection = window.getSelection();
            } // No support for IE
            var textNode = document.getElementById('test').firstChild;
            var theRange = document.createRange();

            // select 0th–4th character
            theRange.setStart(textNode, 0);
            theRange.setEnd(textNode, 4);

            // set user selection    
            userSelection.addRange(theRange);

            var textNode = document.getElementById('test').firstChild;
            var theRange = document.createRange();

            // select 8th–12th character
            theRange.setStart(textNode, 8);
            theRange.setEnd(textNode, 12);

            // set user selection    
            userSelection.addRange(theRange);
        };

        window.onload = function() {
            var el = document.getElementById('trigger');
            el.onclick = testCase;
        };

        function getSelText() {
            var txt = '';
            if (window.getSelection) {
                txt = window.getSelection();
            } else if (document.getSelection) {
                txt = document.getSelection();
            } else if (document.selection) {
                txt = document.selection.createRange().text;
            } else
            return;
            document.aform.selectedtext.value = txt;
        }
    </script>
</body>

不可以。在主要浏览器中,只有 Firefox 支持用户选择中的多个范围。其他浏览器(WebKit、Opera、IE9)确实有SelectionAPI支持多个范围,但目前不支持。 WebKit 是显然不打算很快增加支持 http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2011-January/030102.html。至于Opera和IE,我不知道。

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

有没有办法在 Chrome 和/或 IE 中使用 JS 选择多个文本区域? 的相关文章

随机推荐

  • 自定义框架未加载 dyld:库未加载:@rpath/Custom.framework/

    我有一个带有多个自定义动态框架的应用程序 这意味着我使用 iOS 8 作为 Xcode 6 2 上的 SDK 我的 Mac 在优胜美地 这些框架有 Swift 源代码和资源 该应用程序是分布式企业应用程序 因此我只需创建一个 IPA 并通过
  • NSPredicate 与子查询

    我有这样的关系 player lt gt gt games lt lt gt quiz 并且想要获得所有不在玩家游戏中的测验 例如 SELECT FROM ZQUIZ WHERE Z PK NOT IN SELECT ZQUIZ FROM
  • GraphQL - 根据参数返回计算类型

    Overview 简化 在我的 NodeJS 服务器中 我实现了以下 GraphQL 架构 type Item name String value Float type Query items names String Item 然后 客户
  • 在Windows中启动python时导入模块[重复]

    这个问题在这里已经有答案了 我在 Windows 上使用 python 我正在尝试找到一种在启动 python 时导入一些默认模块的方法 这意味着 当启动python时 一些模块应该已经导入 就像builtins 有什么办法吗 Thanks
  • 如何在QML中设置弹出菜单位置

    我想修复 QML 中弹出菜单的位置 当我单击设置按钮时 我希望弹出菜单将显示在固定位置 我用了一天的时间就做到了 但是做不到 我怎样才能在 QML 中做到这一点 另外 我想更改菜单项的大小 宽度和高度 希望您的帮助 这取决于QtQuick
  • MySQL - 获取前 3 个逗号分隔值

    我有一个查询返回一个带有一组逗号分隔值的字段 我想将这些值中的前三个值放入查询结果中的单独列中 我可以使用第一个SUBSTRING INDEX但我怎样才能得到另外两个呢 SELECT aaaaa bbbbb ccccc SUBSTRING
  • 在对其输出进行 SHA-1 处理后,可预测的随机数生成器如何(如果有的话)变得更加安全?

    本文 http www quadibloc com crypto co4814 htm指出 尽管 Mersenne Twister 是一个非常好的伪随机数生成器 但由于非常简单的原因 它本身并不具有加密安全性 可以从生成器在任何给定时间所具
  • Rspec 捆绑包在 TextMate 和 rvm 中损坏

    自从我开始使用rvm以来 我经历了一段困难时期 我已经完成了所有 rvm textmate 设置并拥有最新的捆绑包 但是我仍然无法从 textmate 运行 Rspec 测试 我有最新的捆绑包github com rspec rspec t
  • 错误:为参数指定的存储类

    我写了一段C代码 当我在 Linux 上编译它时 它在头文件中显示 以下错误 storage class specified for parameter i32 i8等等 typedef int i32 typedef char i8 您很
  • 正则表达式在 Javascript 中获取括号之间的字符串

    我正在尝试编写一个正则表达式 它返回括号之间的字符串 例如 我想获取位于字符串 和 之间的字符串 I expect five hundred dollars 500 会回来 500 Found 正则表达式在Javascript中获取两个字符
  • C++11 / 生成的构造函数

    我一直在从事由其他人 已离开公司 发起的 C 项目 他写了一段代码 看起来运行得很好 但我无法理解 下面是代码的简化版本 有两类 class Algo t protected Matrix t m Matrix public Algo t
  • 如何在 javascript 或 jquery 中将值与逗号分隔值进行比较

    我想将值与 javascript 或 jquery 中的逗号分隔值进行比较 为此 我做了以下代码 还剩下什么 var str reg val i got str 1 2 3 我需要将它与值进行比较 所以我该怎么做 if str 1 WBE
  • 有电影放映时间 api 吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ‘sf’(R 包)命名空间加载失败,无法加载共享对象

    我正在尝试在 Centos 机器上安装 R sf 在 gdal 的扩展问题 现在通过从源代码构建修复 之后 我现在得到 Error package or namespace load failed for sf in dyn load fi
  • 如何模拟.net应用程序内存不足?

    好吧 我必须调试内存分配问题 随着时间的推移 应用程序会耗尽内存 我需要为 net 窗口应用程序模拟低内存系统 作为更快地重现内存不足问题的方法 PS 我的初步调查表明 内存泄漏是在应用程序分配非托管资源 托管 DX 时发生的 编写另一个程
  • 使用 EF PowerTools 逆向工程代码优先更改生成的上下文文件的名称

    我一直在尝试弄清楚如何制作 EF Power Tools Reverse Engineer Code First对生成的上下文文件使用不同的名称 比现在使用的要好 Example 我有一个名为我的 Awesome Dev Database
  • Web 服务器找不到请求的资源

    我在 VS 2008 SP1 上有一个 NET 3 5 Web 应用程序 在 Vista Ultimate 32 SP1 上运行 我在默认网站下创建了一个应用程序 所以应用程序的网址是 http localhost mysite http
  • Openlayers 3:以编程方式选择功能

    我正在尝试将我的系统从 Openlayers 2 升级到 Openlayers 3 但我遇到了一个我似乎无法解决的特定问题 我的应用程序有一个网格和一张地图 当用户单击网格时 我想选择地图上的相关点 在 Openlayers 2 中我使用了
  • 在 Ruby On Rails 上学习 BDD 的途径是什么?

    我想在 Ruby On Rails 上启动 BDD 我应该学习什么 我对 BDD RSpec 或 Cucumber 一无所知 最好的学习方式是什么 教程 涵盖 我应该测试什么行为 之类的内容 ETC thanks RSpec 特定 我保留这
  • 有没有办法在 Chrome 和/或 IE 中使用 JS 选择多个文本区域?

    Firefox 3 可以使用 JS 选择多个文本区域 有没有办法在 Chrome 和 IE 中做到这一点 我真的试图找到一种方法来选择多个 Chrome 和 IE9 中网页中的文本区域 信息位于 http help dottoro com