javascript - window.getSelection().toString() 在 Firefox 中不起作用(在 Chrome 中起作用)

标签 javascript firefox mozilla

当我在 <input type="number"> 上突出显示数字时在 Chrome 中,window.getSelection().toString()成功地给了我突出显示的文本。

但在 Firefox 中并非如此。它总是空白的。有谁知道为什么?这真是令人困惑,因为 MDN getSelection documentation声明它应该在 Firefox 57 中工作。

最佳答案

这是一个火狐的错误。见 https://bugzilla.mozilla.org/show_bug.cgi?id=85686

很老的一个,还没修好。

我使用以下代码作为解决方法:

        function getSelectionText() {
            if (window.getSelection) {
                try {
                    var activeElement = document.activeElement;
                    if (activeElement && activeElement.value) {
                        // firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=85686
                        return activeElement.value.substring(activeElement.selectionStart, activeElement.selectionEnd);
                    } else {
                        return window.getSelection().toString();
                    }

                } catch (e) {
                }
            } else if (document.selection && document.selection.type != "Control") {
                // For IE
                return document.selection.createRange().text;
            }
        }        

关于javascript - window.getSelection().toString() 在 Firefox 中不起作用(在 Chrome 中起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517432/

相关文章:

php - 将基于PHP的reCaptcha插入基于jQuery的Shoutbox时遇到很多麻烦

javascript - 使用动态变量从 tr 访问子 td

javascript - 调用 document.close 后 Document.links 为空

css - 如何在 Mozilla 中查找给定 Webkit CSS 属性的等效属性

linux - 开始构建我自己的 mozilla 的资源

javascript - 如何在 JQuery 1.5.x 中延迟模式对话框窗口的自动打开?

javascript - 动态添加、验证和删除表单字段集

javascript - 用带有焦点的输入替换焦点范围

javascript - 为什么这个 javascript 在 Chrome 中执行,但在 Firefox 中却不行?

javascript - 通过 Jquery/JS/浏览器特定 API 捕获打印事件