我了解禁止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();
});

08-27 01:13