в настоящее время вкладываю вклад в расширение, и основная проблема заключается в том, что в Firefox запускается CSP, что вызывает довольно много проблем. В основном, кажется, это блокирует инъекцию динамических CSS, что, как я думал, я удалил, хотя он все еще запускается. Просто для справки, веб -сайт, на который я нацелен, является Modrinth. Это репо.
в настоящее время вкладываю вклад в расширение, и основная проблема заключается в том, что в Firefox запускается CSP, что вызывает довольно много проблем. В основном, кажется, это блокирует инъекцию динамических CSS, что, как я думал, я удалил, хотя он все еще запускается. Просто для справки, веб -сайт, на который я нацелен, является Modrinth. Это репо.[code]document.onreadystatechange = function () { const projectRegex = /^https?:\/\/modrinth\.com\/(?:project|mod|resourcepack|shader|datapack|modpack)\/([^\/]+)/; const projectIdTest = projectRegex.exec(window.location.href); const projectId = projectIdTest != null && projectIdTest.length > 1 ? projectIdTest[1] : null; if (projectId !== null) { runBanner(projectId); return; } pageSupportsBanners = false; };
useNuxtApp()._middleware.global.push(function handleRoute(to, from) { if (to.name.startsWith("type-id")) { const { id } = to.params; console.log("entering project", id); runBanner(id); } else if (from.name.startsWith("type-id")) { const { id } = from.params; //console.log("leaving project", id); const containers = document.getElementsByClassName("banner-container"); for (let container of containers) { document.body.removeChild(container); } pageSupportsBanners = false; } });
let pageSupportsBanners = false; const fallbackimage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAnSURBVHhe7cEBDQAAAMKg909tDjcgAAAAAAAAAAAAAAAAAAAA4FwNQEAAAQtzTh0AAAAASUVORK5CYII="; let banner = fallbackimage;
async function runBanner(id) { console.log("runBanner called with id:", id); pageSupportsBanners = true; const apibase = "https://api.modrinth.com/v3/project/";
function applyBanners() { console.log("applyBanners called, banner:", banner); if (pageSupportsBanners) { const bannerContainer = document.createElement("div"); const bannerStyles = document.createElement("style"); bannerStyles.innerHTML = ` .banner-image { background-image: linear-gradient(0deg, var(--color-bg) 0%, rgba(0, 0, 0, 0) 200%), url(${banner}) !important; } `; document.head.appendChild(bannerStyles); bannerContainer.classList.add("banner-container"); const bannerImage = document.createElement("div"); bannerImage.classList.add("banner-image"); bannerContainer.appendChild(bannerImage); const bannerBg = document.createElement("div"); bannerBg.classList.add("banner-bg"); document.body.appendChild(bannerBg); document.body.appendChild(bannerContainer); bannerContainer.style.opacity = "100%"; } } < /code> Вот текст ошибок CSP, с которыми я сталкиваюсь, у меня мало представления о том, что они на самом деле имеют в виду, поэтому я здесь: < /p>
Содержимого-безопасности-policy: (только политика страницы). Настройки страницы будут блокировать встроенный сцена 'себя'". Рассмотрите возможность использования hash ('sha256-jbmybqga3tpybg9fuy2esk5fafhmvdyh2gunnhlcvuw =') или nonce. < /P> < /blockquote>
sentecurity-policy: настройки страницы. Потому что это нарушает следующую директиву: «Style-Src https://m.stripe.network». Подумайте об использовании hash ('sha256-dd4j3unqshsomqcyi4vn5bt3mgzb/0fowba72rsgukc =', требуется «небезопасно» для атрибутов стиля) или нез Мой content.js, переключая темы на эти файлы, однако это не работает. Проблема также может возникнуть в моем content.js [/code], где обрабатывается основная переключение темы.