如何从javascript中选择div中的文本(用于复制到剪贴板中)?

时间:2009-03-17 20:47:15

标签: javascript html

我有一个包含一些文本的div,我希望用户能够从页面轻松复制(通过剪贴板)。是否有跨浏览器方式在鼠标点击中选择div中的所有文本?

5 个答案:

答案 0 :(得分:2)

跨浏览器支持通过Javascript进行剪贴板复制需要使用Flash来绕过Firefox / Netscape的安全性,该安全性拒绝访问剪贴板。如果您使用的是jQuery,则可以轻松使用clipboard插件。如果你在不使用jQuery的情况下滚动自己的Javascript,那么这个blog post可能会有帮助。

此外,您实际上可以调整Firefox的安全权限,以允许脚本访问剪贴板。 dojotoolkit.org提供了一个很好的walkthrough。这通常不是追求的路径,因为它需要您的每个用户进行此调整。使用Flash更容易,因为它适用于所有现代浏览器(Safari,IE,Firefox和Opera)。

答案 1 :(得分:1)

<SPAN ID="copytext" STYLE="height:150;width:162;background-color:pink">
This text will be copied onto the clipboard when you click the button below. Try it!
</SPAN>
<TEXTAREA ID="holdtext" STYLE="display:none;">
</TEXTAREA>
<BUTTON onClick="ClipBoard();">Copy to Clipboard</BUTTON>    

function ClipBoard() 
    {
    holdtext.innerText = copytext.innerText;
    Copied = holdtext.createTextRange();
    Copied.execCommand("Copy");
    }

From Here

答案 2 :(得分:1)

答案 3 :(得分:0)

This question可能会为您提供一些线索。

答案 4 :(得分:0)

我找不到在div中选择文本的方法,并且真的不想使用flash方法来复制它(尽管这是一个很好的工具可用)。

我最后这样做了:

function selectIncidentIDText (incidentIDTxtEl) {
    incidentIDTxtEl.select();
}
<h:inputText value="(IncidentID: #{ViewIncidentBean.incident.id})" readonly="true" onclick="selectIncidentIDText(this);"/>

这对我想要的东西来说效果很好,虽然它有点难看。