我有一个包含一些文本的div,我希望用户能够从页面轻松复制(通过剪贴板)。是否有跨浏览器方式在鼠标点击中选择div中的所有文本?
答案 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");
}
答案 2 :(得分:1)
看看这两个: http://yangshuai.googlepages.com/jquerycopyplugin http://plugins.jquery.com/project/clipboard
答案 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);"/>
这对我想要的东西来说效果很好,虽然它有点难看。