open clipboard's URL in current/new tab

This commit is contained in:
usk 2018-01-03 07:19:25 +09:00
parent f484fda718
commit 54a7662cd1
8 changed files with 39 additions and 3 deletions

View file

@ -60,6 +60,8 @@ const exec = (operation) => {
type: messages.CONSOLE_SHOW_INFO,
text: 'Current url yanked',
});
case operations.URLS_PASTE:
return urls.paste(window, operation.newTab ? operation.newTab : false);
default:
browser.runtime.sendMessage({
type: messages.BACKGROUND_OPERATION,

View file

@ -1,3 +1,5 @@
import messages from 'shared/messages';
const yank = (win) => {
let input = win.document.createElement('input');
win.document.body.append(input);
@ -12,4 +14,26 @@ const yank = (win) => {
input.remove();
};
export { yank };
const paste = (win, newTab) => {
let textarea = win.document.createElement('textarea');
win.document.body.append(textarea);
textarea.style.position = 'fixed';
textarea.style.top = '-100px';
textarea.contentEditable = 'true';
textarea.focus();
if (win.document.execCommand('paste')) {
if (/^(https?|ftp):\/\//.test(textarea.textContent)) {
browser.runtime.sendMessage({
type: messages.OPEN_URL,
url: textarea.textContent,
newTab: newTab ? newTab : false,
});
}
}
textarea.remove();
};
export { yank, paste };