From b0932baeea99715d4770dd121f2c4207cebcbcf0 Mon Sep 17 00:00:00 2001 From: s2 Date: Tue, 21 Nov 2017 19:33:09 +0100 Subject: [PATCH] add timeout before copying password --- src/popup/pwgen.js | 57 ++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/src/popup/pwgen.js b/src/popup/pwgen.js index 6b8960d..6b3c9da 100644 --- a/src/popup/pwgen.js +++ b/src/popup/pwgen.js @@ -35,36 +35,43 @@ function saveOptions(options) { } function copypasstoclippboard() { - var copyText = document.getElementById('pw'); - copyText.select(); - document.execCommand('copy'); + setTimeout(function() { + var copyText = document.getElementById('pw'); + copyText.select(); + document.execCommand('copy'); + }, 100); } -document.getElementById('new').addEventListener('click', (ev) => { - ev.preventDefault(); - var params = getParams(); - document.getElementById('pw').value = randPassword(params.length, params.special); -}); +document.addEventListener('DOMContentLoaded', function() { -document.getElementById('copy').addEventListener('click', (ev) => { - ev.preventDefault(); - copypasstoclippboard(); -}); - -var list = document.getElementsByTagName('input'); -for (var i = 0; i < list.length; i++) { - list[i].addEventListener('change', (ev) => { - saveOptions(getParams()); + document.getElementById('new').addEventListener('click', (ev) => { + ev.preventDefault(); + var params = getParams(); + document.getElementById('pw').value = randPassword(params.length, params.special); }); -} -loadOptions().then((options) => { - document.getElementById('length').value = options.length; - document.getElementById('special').checked = options.special; - document.getElementById('directcopy').checked = options.directcopy; - document.getElementById('pw').value = randPassword(getParams().length, getParams().special); - - if (options.directcopy) { + document.getElementById('copy').addEventListener('click', (ev) => { + ev.preventDefault(); copypasstoclippboard(); + }); + + var list = document.getElementsByTagName('input'); + for (var i = 0; i < list.length; i++) { + list[i].addEventListener('change', (ev) => { + saveOptions(getParams()); + }); } + + loadOptions().then((options) => { + document.getElementById('length').value = options.length; + document.getElementById('special').checked = options.special; + document.getElementById('directcopy').checked = options.directcopy; + document.getElementById('pw').value = randPassword(getParams().length, getParams().special); + + if (options.directcopy) { + copypasstoclippboard(); + } + }); + }); +