aboutsummaryrefslogtreecommitdiff
path: root/src/content/urls.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/content/urls.ts')
-rw-r--r--src/content/urls.ts41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/content/urls.ts b/src/content/urls.ts
new file mode 100644
index 0000000..035b9bb
--- /dev/null
+++ b/src/content/urls.ts
@@ -0,0 +1,41 @@
+import * as messages from '../shared/messages';
+import * as urls from '../shared/urls';
+import { Search } from '../shared/Settings';
+
+const yank = (win: Window) => {
+ let input = win.document.createElement('input');
+ win.document.body.append(input);
+
+ input.style.position = 'fixed';
+ input.style.top = '-100px';
+ input.value = win.location.href;
+ input.select();
+
+ win.document.execCommand('copy');
+
+ input.remove();
+};
+
+const paste = (win: Window, newTab: boolean, search: Search) => {
+ 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')) {
+ let value = textarea.textContent as string;
+ let url = urls.searchUrl(value, search);
+ browser.runtime.sendMessage({
+ type: messages.OPEN_URL,
+ url,
+ newTab,
+ });
+ }
+
+ textarea.remove();
+};
+
+export { yank, paste };