Электрон: Проблема с изменением фонового изображения на изображение локальной файловой системы - PullRequest
0 голосов
/ 04 февраля 2020

Как видно из названия, у меня возникли проблемы с изменением фонового изображения элемента css элемента div для указания на локальный файл с помощью JS или JQuery в приложении Electron, которое я создаю.

Приложение представляет собой средство просмотра изображений, которое позволяет загружать файлы в каталог appData приложения на windows и затем отображать эти файлы. Однако я не могу изменить фоновое изображение, чтобы оно указывало на изображения в этом каталоге правильно.

Поскольку ниже переменная сообщения устанавливается в другом месте кода, в основном, с помощью функции пути в nodejs. Код, который у меня есть, выглядит следующим образом:

document.getElementById('bg').style.backgroundImage = "url("+message+")";
console.log(message);

Вывод на консоль:

file:///C:\Users\me\AppData\Roaming\display\files\pirate-flag.jpg
GET file:///C:/UsersmeppDataRoamingdisplay%0Filespirate-flag.jpg net::ERR_FILE_NOT_FOUND

Я также пробовал несколько вариантов:

message = message.replace(/\\/,'\\\\');

лучшее, что я получаю, это то, что первое «\» после C: становится двойным «\», но в сообщении об ошибке оно возвращается к «/». Я также попытался изменить фоновое изображение, используя jquery, но та же самая проблема. Я также пытался использовать escape(message); перед добавлением file:///, и это просто все испортило.

Если я установил путь явно в css, он работает нормально - как:

background-image: url("file:///C:\\Users\\me\\AppData\\Roaming\\display\\files\\pirate-flag.jpg")

Но я не могу делать это постоянно, так как изображение должно меняться в зависимости от того, что пользователь нажимает. Я просмотрел все, но не могу найти, как заставить это работать. Любые предложения?

РЕДАКТИРОВАТЬ:

Я понял, что вывод журнала также может быть отформатирован, так что это то, что отображается в инспекторе элементов после изменения css :

url("file:///C:Usersme\a ppDataRoamingdisplay\f ilespirate-flag.jpg")
...