Я могу изменить стороннее электронное приложение (Discord), используя событие dom-ready, например:
mainWindow.webContents.on('dom-ready', () => {
let code = fs.readFileSync("customSettings.js").toString();
mainWindow.webContents.executeJavaScript(code);
});
Просмотр https://electronjs.org/docs/api/web-contents#instance-событий Я не могу найти событие, которое срабатывает при изменении DOM?
В качестве альтернативы я попытался использовать MutationObserver, но даже внедрил что-то как basi c, так как следующий код приводит к ошибке: Failed to execute 'removeChild' on 'Node'
при перезагрузке страницы (при первой загрузке ошибки не выдаются).
let targetNode = document.querySelector('body');
let config = { attributes: true, childList: true, subtree: true, characterData: true };
const actionAfterMutation = () => {
console.log("do something");
}
let callback = function (mutationsList, observer) {
for (var mutation of mutationsList) {
try {
actionAfterMutation();
} catch (e) {
console.log(e);
}
}
};
let observer = new MutationObserver(callback);
observer.observe(targetNode, config);