Skip to content

Instantly share code, notes, and snippets.

@bradleybossard
Created December 5, 2015 21:09
Show Gist options
  • Star 42 You must be signed in to star a gist
  • Fork 9 You must be signed in to fork a gist
  • Save bradleybossard/3667ad5259045f839adc to your computer and use it in GitHub Desktop.
Save bradleybossard/3667ad5259045f839adc to your computer and use it in GitHub Desktop.
Bookmarklet to copy current page title and url in Markdown format to clipboard, like [title](url) - Usual for posting links to resources in README.md files
javascript:(function() {
function copyToClipboard(text) {
if (window.clipboardData && 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 && 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);
}
}
}
var markdown = '[' + document.title + '](' + window.location.href + ')';
copyToClipboard(markdown);
})();
@the-confessor
Copy link

I am too having some problems, though not entirely consistent results. If added a statement to log the response of document.execCommand("copy") to the console to help gain insight.

When using Chrome 48 if I put the script directly into a bookmark it works fine - execCommand returns true and the content ends up in my clipboard - but if I load an external script in a bookmarklet or embed the script into an HTML page then the execCommand returns false and the content does not end up in my clipboard.

When using Firefox 45.0 the execCommand returns false and the content does not end up in my clipboard in all three variations. It also spits the following error out into the console:

“document.execCommand(‘cut/copy’) was denied because it was not called from inside a short running user-generated event handler”

I haven't had a chance to investigate this error yet.

@computerphysicslab
Copy link

It didn't work for me either, on Firefox 80.0.1. Even re-writting it as a onliner code.

@LucaSorvillo
Copy link

Thanks!

@wuzhizhi22
Copy link

it is so great convenient!bravo

@djsnipa1
Copy link

I use this simple web tool, Bookmarklet Creator with Script Includer - Peter Coles, to convert the code to a bookmarklet. After that, this is working great! 👍🏼 I’m on iOS Safari.

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