platypush-webext/src/content.js

33 lines
769 B
JavaScript

global.browser = require('webextension-polyfill');
const context = {
targetElement: null,
};
browser.runtime.onMessage.addListener(async message => {
switch (message.type) {
case 'getURL':
return Promise.resolve(window.location.href);
case 'setURL':
window.location.href = message.url;
break;
case 'getDOM':
return Promise.resolve(document.getElementsByTagName('html')[0].outerHTML);
case 'setDOM':
document.documentElement.innerHTML = message.html;
break;
case 'getTargetElement':
return Promise.resolve(context.targetElement ? context.targetElement.outerHTML : null);
}
});
document.addEventListener('contextmenu', event => {
context.targetElement = event.target;
});
// vim:sw=2:ts=2:et: