我了解禁止JS将任意文本复制到剪贴板背后的安全原因,但是有没有一种方法可以通过单击按钮来选择前置节点中的文本,类似于select()函数在输入中的工作方式?
我没有在寻找复制到剪贴板的jQuery插件。我只想在pre块中将文本突出显示,以便用户可以ctrl-c复制。
我似乎要蹲下。
最佳答案
也许您可以在用户单击时将pre
标记更改为textarea
标记:
jsFiddle:http://jsfiddle.net/WzBQf/
<button id="btnSelect">Select!</button>
<button id="btnDeselect">Deselect!</button>
<hr />
<div id="text">
<pre id="txt1">Test</pre>
<textarea id="txt2" readonly="readonly"></textare>
</div>
和JavaScript(jQuery)代码:
$("#txt1, #btnSelect").click(function() {
Select();
});
function Select() {
$("#txt2").val($("#txt1").html()).show();
$("#txt1").hide();
$("#txt2").focus()[0].select();
}
function Deselect() {
$("#txt1").html($("#txt2").val()).show();
$("#txt2").hide();
}
$("#txt2").blur(function() {
Deselect();
});
$("#btnDeselect").click(function() {
Deselect();
});