将textarea文本复制到剪贴板html / javascript

时间:2010-09-17 21:54:13

标签: javascript html copy textarea clipboard

嘿,我知道那里有很多教程,但似乎没有一个对我有用。

我有这个:

<textarea name="forum_link" type="text" style="width:630px; height:90px;">
[URL=http://www.site.net/video/<?=$_GET['id']?>/<?=$_GET['tag']?>]<?=$video->title?>[/URL]

[URL=http://www.site.net/video/<?=$_GET['id']?>/<?=$_GET['tag']?>][IMG]<?=$video->thumbnailURL?>[/IMG][/URL]
</textarea>

现在我想要的只是一个简单的按钮,点击后将textarea中的文本复制到用户剪贴板。

任何帮助都会很棒:)

由于

6 个答案:

答案 0 :(得分:3)

<textarea id="html" name="html">Some text</textarea>
<input type="button" value="Refresh" onclick="copy_to_clipboard('html');">

<script>
function copy_to_clipboard(id)
{
    document.getElementById('html').select();
    document.execCommand('copy');
}
</script>

答案 1 :(得分:2)

可悲的是,没有一个解决方案可以解决这个问题。 IE以外的浏览器不允许复制到剪贴板。我最近找到了一个很好的解决方案,它使用Flash(适用于IE的所有浏览器)和IE的JavaScript来将文本复制到剪贴板。有关详细信息,请参阅zeroclipboard

答案 2 :(得分:1)

查看此页面。它没有说明浏览器兼容性,但可能值得一试!它将javascript副本提供给剪贴板示例,以及与之关联的HTML。

http://www.geekpedia.com/tutorial126_Clipboard-cut-copy-and-paste-with-JavaScript.html

答案 3 :(得分:0)

使用任何脚本的浏览器兼容性充其量都是劣质的。 JavaScript故意本身不允许操作系统具有此级别的功能。有可能创建一个签名的脚本,你会有更好的运气,但是...这是更多的工作,几乎不值得。大多数人都知道如何复制和粘贴......

答案 4 :(得分:0)

不幸的是,javascript没有通用的方法。目前,使用flash&amp; javascript最通用的方式。 查看LMCButton - 一个小动画flash按钮(4 kb),用于&#34;复制到剪贴板&#34;。

使用javascript的示例:

获取按钮的html代码: function lmc_get_button(cliptext,idLMC)

更新按钮中的文字: function lmc_set_text(idLMC,text)

答案 5 :(得分:0)

解决方案完全基于Javascript。我不知道它与其他浏览器的兼容性。对于chrome工作,我正在添加代码片段。

&#13;
&#13;
//all text written(inside text area), is copied and shown inside the div with class "mas"
//you can't see it, as it is hidden(opacity is 0)

$('#content:not(.focus)').keyup(function(){					
								
								
    var value = $(this).val();
    var contentAttr = $(this).attr('name');
    
    $('.'+contentAttr+'').html(value.replace(/\r?\n/g,'<br/>'));
    
})

//below code can copy text inside a div. div id should be identical with button oclick id  

copyToClipboard = function (element) {
    var $temp = $("<input />");
    $("body").append($temp);
    $temp.val($(element).text()).select();

    var result = false;
    try {
        result = document.execCommand("copy");
    } catch (err) {
        console.log("Copy error: " + err);
    }

    $temp.remove();
    return result;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<textarea name="mas" rows="6" id="content"></textarea>
<p>&nbsp;</p>
<div id="p1" class="mas" style="top:0px;position:absolute;opacity:0;" ></div>

<button onclick="copyToClipboard('#p1')">Copy P1</button>
&#13;
&#13;
&#13;

有关详细信息,请参阅此Jsfiddle