Как сделать копию кнопки копирования » не»

#javascript #html

#javascript #HTML

Вопрос:

Я пытаюсь создать кнопку копирования для копирования некоторого кода C , а затем пользователь может позже вставить его в компилятор, но когда кнопка копирования копирует кавычки, она копирует amp; quot; в буфер обмена, а не фактическую метку.

Вот мой код:

 <textarea rows="15" cols=60" id="inputtxt">

  // My c   stuff  </textarea>  <br>  <button onclick="myfunction();">Copy code</button>
  

и скрипт:

 function myfunction() {
var copyTxt = document.getElementsById("InputTxt");
copyTxt.select();
document.execCommand("copy");}
  

Как я могу сделать так, чтобы она копировала фактический знак кавычки вместо просто amp;quot?

Комментарии:

1. С этим кодом есть пара проблем, которые означают, что он не будет запускаться. Но когда они исправлены copy , кажется, копирует кавычки, как в демонстрации, которую я запустил.

2. так в чем же тогда проблемы в коде?

3. В вашем HTML отсутствует вводная цитата, которая document.getElementsById("InputTxt") должна быть document.getElementById("inputtxt") . Но вы могли бы посмотреть журнал браузера (F12), чтобы разобраться с этим.

4. Да, на самом деле я только что все сделал, и теперь он отлично копирует. Спасибо, что указали на ошибки.

Ответ №1:

Copy не будет выполнять никакого кодирования или преобразования, что означает, что ваш код c уже закодирован, поэтому ваш скопированный текст является сущностями. Попробуйте посмотреть на источник вашего HTML-кода в вашем браузере, чтобы доказать это.

Если ваш исходный код не является сущностями, тогда вам нужно сообщить нам, как вы используете скопированный текст, он должен быть закодирован в то время.

Ответ №2:

Попробуйте это

 function copyToClipboard(text) {
    if (window.clipboardData amp;amp; window.clipboardData.setData) {
        // IE specific code path to prevent textarea being shown while dialog is visible.
        return clipboardData.setData("Text", text); 

    } else if (document.queryCommandSupported amp;amp; document.queryCommandSupported("copy")) {
        var textarea = document.createElement("textarea");
        textarea.textContent = text;
        textarea.style.position = "fixed";  // Prevent scrolling to bottom of page in MS Edge.
        document.body.appendChild(textarea);
        textarea.select();
        try {
            return document.execCommand("copy");  // Security exception may be thrown by some browsers.
        } catch (ex) {
            console.warn("Copy to clipboard failed.", ex);
            return false;
        } finally {
            document.body.removeChild(textarea);
        }
    }
}
  

https://jsfiddle.net/fx6a6n6x/