/
popup_script.js
85 lines (72 loc) · 2.04 KB
/
popup_script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
let password = "DefaultPassword";
const generatePassword = () => {
var specials = "!@#$%^&*()_+{}:\"<>?|[];',./`~";
var lowercase = "abcdefghijklmnopqrstuvwxyz";
var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var numbers = "0123456789";
var all = specials + lowercase + uppercase + numbers;
String.prototype.pick = function (min, max) {
var n,
chars = "";
if (typeof max === "undefined") {
n = min;
} else {
n = min + Math.floor(Math.random() * (max - min));
}
for (var i = 0; i < n; i++) {
chars += this.charAt(Math.floor(Math.random() * this.length));
}
return chars;
};
String.prototype.shuffle = function () {
var array = this.split("");
var tmp,
current,
top = array.length;
if (top)
while (--top) {
current = Math.floor(Math.random() * (top + 1));
tmp = array[current];
array[current] = array[top];
array[top] = tmp;
}
return array.join("");
};
var genPassword = (
specials.pick(1) +
lowercase.pick(1) +
uppercase.pick(1) +
all.pick(10, 16)
).shuffle();
password = genPassword;
};
function copyTextToClipboard(text) {
if (!navigator.clipboard) {
return;
}
navigator.clipboard.writeText(text).then(
function () {
console.log("Copy successful!");
},
function (err) {
console.error("Copy failed because of", err);
}
);
}
document.getElementById("generatePwd").addEventListener("click", () => {
generatePassword();
document.getElementById("pwdField").innerHTML = password;
document.getElementById("copyBtn").style.display = "inline-block";
});
document.getElementById("copyBtn").addEventListener("click", () => {
copyTextToClipboard(password);
chrome.storage.local.set({
password: password,
});
document.getElementById("copyText").style.display = "block";
});
chrome.storage.local.get("password", (data) => {
document.getElementById(
"lastPwd"
).innerHTML = `Last copied password is: <br> <span style="color:#e6f07d">${data.password}<span>`;
});