复制到剪贴板

时间:2020-05-28 16:33:50

标签: javascript jquery

html

<pre class="code"><code >from django.db import models</code>
<code >from general.model_mixins import TitleMixin, CommentMixin, BodyMixin</code>
<code >from hyper_link.models import HyperLink</code>
<code ></code>
<code ></code>
<code class="breakpoint">class CodeTypes(CommentMixin, models.Model):</code>
<code >    code_type = models.CharField(max_length=100,</code>
<code >                                 verbose_name="Тип программного кода (Python, HTML, JSON и т.п.)")</code>
<code ></code>
<code >    def __str__(self):</code>
<code >        return self.code_type</code>
<code class="breakpoint"></code>
<code >    class Meta:</code>
<code >        verbose_name = "Тип кода"</code>
<code ></code>
<code ></code>
<code >class CodeSample(TitleMixin,</code>
<code >                 CommentMixin,</code>
<code >                 BodyMixin,</code>
<code >                 models.Model):</code>
<code ></code>
<code >    breakpoints = models.CharField(default="",</code>
<code >                                   max_length=100,</code>
<code >                                   blank=True,</code>
<code >                                   verbose_name="Строки с точками остановки через запятую")</code>
<code >    code_type = models.ForeignKey(CodeTypes,</code>
<code >                                 on_delete=models.PROTECT,</code>
<code >                                 verbose_name="Тип программного кода (Python, HTML, JSON и т.п.)")</code>
<code ></code>
<code >    hiperlink = models.ForeignKey(HyperLink,</code>
<code >                                  on_delete=models.PROTECT,</code>
<code >                                  blank=True,</code>
<code >                                  null=True,</code>
<code >                                  verbose_name="Ссылка")</code>
<code ></code>
<code >    class Meta:</code>
<code >        verbose_name = "Программный код"</code>
</pre>
<button class="code-sample-button">Копировать</button></div><!--.code-sample-->

js

function copy_code_sample($button){
    var $code = $($button.siblings(".code")[0]);
    $code.select();
    document.execCommand('copy');
}

任务

这个想法是复制编程代码(当然没有任何html标记)。 可以使用jQuery。

我的代码不起作用。

document.execCommand('copy');
false

此错误似乎表示剪贴板是完整的。无论如何,它是完整的。

如何将代码示例复制到剪贴板?

1 个答案:

答案 0 :(得分:1)

使用以下JavaScript代码并在div中添加要复制的内容id =“ mytext”按钮添加按钮id =“ TextToCopy” onclick =“ copy_function('mytext')”

 function copy_function(id){
  var value = document.getElementById(id).innerHTML;
  var input_temp = document.createElement("input");
  input_temp.value = value;
  document.body.appendChild(input_temp);
  input_temp.select();
  document.execCommand("copy");
  document.body.removeChild(input_temp);
};
<div id="mytext"><pre class="code"><code >from django.db import models</code>
<code >from general.model_mixins import TitleMixin, CommentMixin, BodyMixin</code>
<code >from hyper_link.models import HyperLink</code>
<code ></code>
<code ></code>
<code class="breakpoint">class CodeTypes(CommentMixin, models.Model):</code>
<code >    code_type = models.CharField(max_length=100,</code>
<code >                                 verbose_name="Тип программного кода (Python, HTML, JSON и т.п.)")</code>
<code ></code>
<code >    def __str__(self):</code>
<code >        return self.code_type</code>
<code class="breakpoint"></code>
<code >    class Meta:</code>
<code >        verbose_name = "Тип кода"</code>
<code ></code>
<code ></code>
<code >class CodeSample(TitleMixin,</code>
<code >                 CommentMixin,</code>
<code >                 BodyMixin,</code>
<code >                 models.Model):</code>
<code ></code>
<code >    breakpoints = models.CharField(default="",</code>
<code >                                   max_length=100,</code>
<code >                                   blank=True,</code>
<code >                                   verbose_name="Строки с точками остановки через запятую")</code>
<code >    code_type = models.ForeignKey(CodeTypes,</code>
<code >                                 on_delete=models.PROTECT,</code>
<code >                                 verbose_name="Тип программного кода (Python, HTML, JSON и т.п.)")</code>
<code ></code>
<code >    hiperlink = models.ForeignKey(HyperLink,</code>
<code >                                  on_delete=models.PROTECT,</code>
<code >                                  blank=True,</code>
<code >                                  null=True,</code>
<code >                                  verbose_name="Ссылка")</code>
<code ></code>
<code >    class Meta:</code>
<code >        verbose_name = "Программный код"</code>
</pre></div>
<button id="TextToCopy" onclick="copy_function('mytext')">Копировать</button>