-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
html links no longer copy to the windows clipboard properly #32
Comments
This also happens on Mac OS 12.0.1 and Chrome OS. At least since 0.5.1 or so. (Now on 0.5.5 and still happens.) |
likewise on linux (Ubuntu 18.04, brave) pasting into google docs. I'm more or less addicted to this feature. I'm open to contributing financially to see it restored. I started exploring a bounty on bountysource. Do let me/us know if that's of interest. |
permission? I don't understand. It's open source. What permission would make any difference as to whether you can fork it and make a pull request? |
@ku I'm guessing something to do with changing what's in the clipboard has lost the html version of the clipboard contents which is what enables rich link pasting. Do you know where the fix might be? It's been a while... :) |
Another oddity is that the contents of content.js don't seem to match what's in the repo in master 😕 chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
switch (request.type) {
case 'ping':
return sendResponse({type: 'pong'})
case 'showInputDialog':
const text = window.prompt("CreateLink needs your input");
return sendResponse({type: request.type, text});
case 'selectedText':
const s = document.getSelection()
return sendResponse({ type: request.type, text: (s ? s.toString() : '')})
case 'evaluateFilter':
const f = new Function('s', request.code)
return sendResponse({ type: request.type, text: f.call(null, request.string)})
case 'copyToClipboard':
return sendResponse({ type: request.type, text: copyToClipboard(request.link) })
}
});
function copyToClipboard(text) {
// it does not copy the text to clipboard if it's hidden completely by "display: none".
const textarea = document.createElement('textarea')
textarea.setAttribute('style', `
position: absolute;
width: 0.1px;
height: 0.1px;
right: 200%;
opacity: 0.1;
`)
textarea.setAttribute('id', 'clipboard_object')
document.body.appendChild(textarea)
textarea.appendChild(document.createTextNode(text))
textarea.select()
document.execCommand("copy");
textarea.parentNode.removeChild(textarea)
return text
} I would have expected something looking more like copyToClipboard. Perhaps the package needs to be rebuilt? |
Running it locally, I do see even with the latest code that it's falling back to creating a textarea and copying that due to Note that based on https://stackoverflow.com/questions/56306153/domexception-on-calling-navigator-clipboard-readtext I also tested without the js console open and the same exception is logged. |
Upgrading to the latest fixes it for me. |
In my environment, the version 0.5.7 still copies as a plain text. The steps to reproduce is below:
|
I think what's going on is that it falls back and fails if the focus isn't on the page itself. I always use a keyboard shortcut and as long as I click inside the webpage first, it works. But I was also able to reproduce it failing by clicking on the extension icon. It also fails with the keyboard shortcut when the URL/address bar is focused (rather than the webpage itself). |
it's baaaack! these symptoms, that is #41 suggests I'm not the only one seeing this. |
As of December 20, 2021, when links are copied as html on Windows 10 - the Windows clipboard no longer recognizes them as html links
For example, if an html link is created for this web page
https://tidesandcurrents.noaa.gov/sltrends/globalregionalcomparison.html
And then I paste it into the WordPress editor, it appears like this :
The code which is getting embedded as html now (incorrectly) looks like this
The pasted link used to appear in the WordPress editor (correctly) as a link :
The text was updated successfully, but these errors were encountered: