33 lines
769 B
JavaScript
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:
|