首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >window.getselection在安卓系统中不起作用

window.getselection在安卓系统中不起作用
EN

Stack Overflow用户
提问于 2013-01-11 23:23:26
回答 4查看 1.3K关注 0票数 2

我是个新手,刚开始使用html+javascript+jQuery。我正在尝试使用window.getSelection来获取选定的文本,但这不起作用。有没有人能对此提出解决方案。

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2018-03-24 20:38:53

只需要java脚本中的一行简单代码就可以完成您的工作

代码语言:javascript
复制
 //I am using below line of code which works in both android and web browsers.

function getSelectedText() {
    var selection = null;

    if (window.getSelection) {
        selection = window.getSelection();
    } else if (typeof document.selection != "undefined") {
        selection = document.selection;
    }

    var selectedRange = selection.getRangeAt(0);

    console.log(selectedRange.toString());
}

注意:不要在post中或在任何可运行接口中调用此方法,因为post或任何可运行接口会延迟调用此方法(方法调用发生在浏览器选择释放之后)。只需像这样调用此方法即可

代码语言:javascript
复制
webView.loadUrl("javascript:getSelectedText()");
票数 1
EN

Stack Overflow用户

发布于 2019-11-21 05:39:20

如果你想在文本选择后立即调用函数,你可以使用"selectionchange“事件:

代码语言:javascript
复制
document.addEventListener("selectionchange", handleSelection);

它适用于android chrome和iOS safari。

票数 0
EN

Stack Overflow用户

发布于 2021-12-22 13:11:13

我知道这是一个非常古老的问题,但当我试图解决相同或类似的问题时,我得到的第一个搜索结果是这样的。我在这里没有找到解决方案,但过了一段时间后,我意识到有时对于手机来说,为了让getSelection()正常工作,在点击和选择之间应该有一个短暂的超时。

因此,例如:

代码语言:javascript
复制
document.getElementById("element").addEventListener('click', function (event) {
    window.getSelection().selectAllChildren(this)
});

你应该像这样使用一些想法:

代码语言:javascript
复制
document.getElementById("element").addEventListener('click', function (event) {
  setTimeout(function(passedThis) {
    window.getSelection().selectAllChildren(passedThis)
  }, 10, this);
});

也许这会为某人节省一些时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14281222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档