Skip to content

Instantly share code, notes, and snippets.

@freaktechnik
Last active April 26, 2024 22:06
Show Gist options
  • Save freaktechnik/b59d8d8baf41261f458a49e61c2d0ad3 to your computer and use it in GitHub Desktop.
Save freaktechnik/b59d8d8baf41261f458a49e61c2d0ad3 to your computer and use it in GitHub Desktop.
var myState = {
counter: 0,
greeted: false,
};
browser.tabs.onCreated.addListener(() => {
myState.counter = 0;
});
browser.runtime.onMessage.addListener((message) => {
switch(message) {
case 'state':
return myState;
case 'greeted':
myState.greeted = true;
break;
case 'increment':
myState.counter += 1;
return myState.counter;
}
});
function init() {
browser.runtime.sendMessage('state')
.then((state) => {
document.getElementById('counter').textValue = state.counter;
if(!state.greeted) {
const greeting = document.createElement('p');
greeting.textContent = 'hiya!';
document.body.append(greeting);
browser.runtime.sendMessage('greeted');
}
});
document.getElementById('increment').addEventListener('click', () => {
browser.runtime.sendMessage('increment')
.then((newCount) => {
document.getElementById('counter').textValue = newCount;
});
});
}
document.addEventListener('DOMContentLoaded', init);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment