Я разрабатываю новое расширение для замены вкладок для Google Chrome, и я хотел бы позволить пользователю настраивать фон, для этого я использую API storage.sync
, как предложено this page.
Проблема заключается в том, что изменения стиля применяются асинхронно, поэтому при загрузке страницы ненадолго используется фон по умолчанию (белый), что приводит к неудовлетворительным миганиям .
Возможные (неудовлетворительные) решения:
- не позволяют изменять фон;
- жестко кодируют черный фон в CSS (и переносят проблему).для пользовательских светлых фонов);
- использовать CSS-переход (все еще супер-уродливый).
Какой может быть альтернативный подход?
Следует заминимальный пример.
manifest.json
{
"manifest_version": 2,
"name": "Dummy",
"version": "0.1.0",
"chrome_url_overrides": {
"newtab": "newtab.html"
},
"permissions": [
"storage"
]
}
newtab.html
<script src="/newtab.js"></script>
newtab.js
chrome.storage.sync.get({background: 'black'}, ({background}) => {
document.body.style.background = background;
});