Estoy tratando de hacer una pequeña aplicación de electrones que cargue un sitio web aleatorio a través de 'loadURL' y luego le aplique dinámicamente scripts y hojas de estilo.
Hice una aplicación de ejemplo simple, que carga https://stackoverflow.com/ , y en 'preload.js' agrega 'renderer.js' y 'styles.css' al DOM del sitio web. Aquí está el código:
principal.js
const {app, BrowserWindow} = require('electron') const path = require('path') function createWindow () { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }) mainWindow.loadURL('https://stackoverflow.com/') } app.whenReady().then(() => { createWindow() app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) }) app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit() })precargar.js
window.addEventListener('DOMContentLoaded', () => { //Dynamic style linking to the document var fileref = document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("href", "E:/SomeCodingStuff/testElectron/test/styles.css") document.getElementsByTagName("head")[0].appendChild(fileref) //Dynamic script linking to the document var fileref2 = document.createElement("script") fileref2.setAttribute("src", "E:/SomeCodingStuff/testElectron/test/renderer.js") document.getElementsByTagName("body")[0].appendChild(fileref2) })renderizador.js
document.body.classList.add('blue_background');
estilos.css
.blue_background{ background-color: cornflowerblue; }Como puede ver, esta aplicación debería abrir un sitio web y cambiar el color de su cuerpo a azul, y funciona perfectamente bien con un archivo local 'index.html' y 'loadFile', pero con 'loadURL' se niega a cargar recursos locales: captura de pantalla de una consola
Encontré una publicación al respecto: No se puede abrir el archivo local - Chrome: no se permite cargar el recurso local, por lo que entiendo que Chrome se niega intencionalmente a cargar archivos locales. La solución provista en esa publicación (cargar estos archivos usando un servidor local) funciona bien para mí, pero es demasiado voluminosa e inconveniente para una aplicación que quiero hacer.
Parece que no hay otra solución en la codificación web clásica, pero ¿hay alguna solución electrónica para este problema?
Estaría agradecido por cualquier sugerencia!