Скопировать в буфер обмена - PullRequest
0 голосов
/ 28 мая 2020

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 = "Программный код"
Копировать

js

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

Задача

Идея состоит в том, чтобы скопировать программный код (без любые теги html конечно). Можно использовать jQuery.

Мой код не работает.

document.execCommand('copy');
false

Похоже, это false означает, что буфер обмена не поврежден. В любом случае, он цел.

Как мне скопировать образец кода в буфер обмена?

1 Ответ

1 голос
/ 25 июня 2020

Используйте ниже JavaScript код и добавьте контент, который вы хотите скопировать в div id = "mytext" button add button 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 = "Программный код"
Копировать
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...