使用javascript选择文本并显示Android的复制窗口

使用javascript选择文本并显示Android的复制窗口,javascript,android,jquery,Javascript,Android,Jquery,我想点击按钮并从输入中自动选择文本,然后我想让android用户看到复制窗口来复制所选文本 如上所述,我不建议更改android/ios的复制粘贴功能。。通常,用户熟悉其操作系统的复制粘贴功能。你只需要确保你的文本是可选择的 但是,您可以尝试将文本复制到剪贴板,如下所述:,但我从未在移动设备上尝试过,也不知道它是否有效。我不确定这适用于哪些版本的Android,但您应该尝试使用的是。我在4.3上试过,它似乎能满足你的需要 作为注意事项,尽管页面指定了以下警告: 这是一项实验技术 因为这项技术的

我想点击按钮并从输入中自动选择文本,然后我想让android用户看到复制窗口来复制所选文本


如上所述,我不建议更改android/ios的复制粘贴功能。。通常,用户熟悉其操作系统的复制粘贴功能。你只需要确保你的文本是可选择的


但是,您可以尝试将文本复制到剪贴板,如下所述:,但我从未在移动设备上尝试过,也不知道它是否有效。我不确定这适用于哪些版本的Android,但您应该尝试使用的是。我在4.3上试过,它似乎能满足你的需要

作为注意事项,尽管页面指定了以下警告:

这是一项实验技术

因为这项技术的规范还没有稳定下来,所以请检查兼容性表,以便在各种浏览器中使用正确的前缀。还请注意,随着规范的变化,实验技术的语法和行为在未来版本的浏览器中可能会发生变化

不幸的是,前面提到的兼容性表链接没有任何结果。这里有一个链接,不幸的是它也没有用

下面是一个简单的例子:

HTML:

Javascript:

function selectText()
{
    //select the element you want
    var strongs = document.getElementsByTagName("strong");
    //get the selection object
    var selection = window.getSelection();

    if (selection.rangeCount > 0)
    {
        //clear current selection
        selection.removeAllRanges();
    }

    for (var i=0;i<strongs.length;i++)
    {
        //loop over the items and add them to the selection object
        var range = document.createRange();
        range.selectNode(strongs[i]);
        selection.addRange(range);
    }
}

我希望这会有所帮助。

如果您选择在每个文本视图、HTML。。。你只需要长时间的按压。或者你想在你的应用程序中实现什么,你需要这个场景吗?!这是正常的网页,我想用最简单的方法从移动设备上复制一些文本。这种方法使用flash。当我选择文本时,android用户需要重新选择要复制的文本。我想要一些javascript解决方案来选择像用户这样的文本并显示copy bar.upps,我发布了错误的讨论。我刚刚更新了我的答案。。如果没有的话,希望它能帮上忙:我想不出好的答案了。我在安卓4.2.2上试过,但没有看到结果。我只是注意到你的问题是输入文本,我的例子是div中的文本。你是用输入还是div来试的?我将研究对输入做同样的事情。
<strong>Text to select</strong>
<button onClick="selectText();">Select</button>
function selectText()
{
    //select the element you want
    var strongs = document.getElementsByTagName("strong");
    //get the selection object
    var selection = window.getSelection();

    if (selection.rangeCount > 0)
    {
        //clear current selection
        selection.removeAllRanges();
    }

    for (var i=0;i<strongs.length;i++)
    {
        //loop over the items and add them to the selection object
        var range = document.createRange();
        range.selectNode(strongs[i]);
        selection.addRange(range);
    }
}