-
Notifications
You must be signed in to change notification settings - Fork 2.6k
/
bgpicker.js
75 lines (61 loc) · 2.03 KB
/
bgpicker.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
/* initialise variables */
let bgBtns = document.querySelectorAll('.bg-container button');
let colorPick = document.querySelector('input');
let reset = document.querySelector('.color-reset button');
let cookieVal = { image : '',
color : '' };
function getActiveTab() {
return browser.tabs.query({active: true, currentWindow: true});
}
/* apply backgrounds to buttons */
/* add listener so that when clicked, button applies background to page HTML */
for(let i = 0; i < bgBtns.length; i++) {
let imgName = bgBtns[i].getAttribute('class');
let bgImg = 'url(\'images/' + imgName + '.png\')';
bgBtns[i].style.backgroundImage = bgImg;
bgBtns[i].onclick = function(e) {
getActiveTab().then((tabs) => {
let imgName = e.target.getAttribute('class');
let fullURL = browser.extension.getURL('popup/images/'+ imgName + '.png');
browser.tabs.sendMessage(tabs[0].id, {image: fullURL});
cookieVal.image = fullURL;
browser.cookies.set({
url: tabs[0].url,
name: "bgpicker",
value: JSON.stringify(cookieVal)
})
});
}
}
/* apply chosen color to HTML background */
colorPick.onchange = function(e) {
getActiveTab().then((tabs) => {
let currColor = e.target.value;
browser.tabs.sendMessage(tabs[0].id, {color: currColor});
cookieVal.color = currColor;
browser.cookies.set({
url: tabs[0].url,
name: "bgpicker",
value: JSON.stringify(cookieVal)
})
});
}
/* reset background */
reset.onclick = function() {
getActiveTab().then((tabs) => {
browser.tabs.sendMessage(tabs[0].id, {reset: true});
cookieVal = { image : '',
color : '' };
browser.cookies.remove({
url: tabs[0].url,
name: "bgpicker"
})
});
}
/* Report cookie changes to the console */
browser.cookies.onChanged.addListener((changeInfo) => {
console.log(`Cookie changed:\n
* Cookie: ${JSON.stringify(changeInfo.cookie)}\n
* Cause: ${changeInfo.cause}\n
* Removed: ${changeInfo.removed}`);
});