#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);
}
}
}