Skip to content

Instantly share code, notes, and snippets.

@n1k0
Last active March 13, 2026 08:44
Show Gist options
  • Select an option

  • Save n1k0/b17b5c248a3ee1df99acaae000eccae4 to your computer and use it in GitHub Desktop.

Select an option

Save n1k0/b17b5c248a3ee1df99acaae000eccae4 to your computer and use it in GitHub Desktop.
Copy to clipboard for Chrome and Firefox
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>copy to clipboard for chrome and firefox</title>
</head>
<body>
<button>copy</button>
<script>
function toClipoard(text) {
if ("clipboard" in navigator && typeof navigator.clipboard.writeText === "function") {
// Chrome
return navigator.clipboard.writeText(text)
.then(() => true)
.catch(() => false);
} else {
// Firefox
const input = document.createElement("input");
input.value = text;
input.style.position = "fixed";
input.style.top = "-2000px";
document.body.appendChild(input);
input.select();
try {
return Promise.resolve(document.execCommand("copy"))
.then(res => {
document.body.removeChild(input);
return res;
});
} catch (err) {
return Promise.resolve(false);
}
}
}
document.querySelector("button").addEventListener("click", _ => {
toClipoard("this is a test")
.then(res => console.log("copied", res));
});
</script>
</body>
</html>
@dlnsk
Copy link

dlnsk commented Mar 13, 2026

input eats new lines (\n). Use textarea instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment