From d85b9b548c4b4e77e6dda918fc20f726a87dd324 Mon Sep 17 00:00:00 2001 From: Pierre Ranwez <pierre.ranwez.etu@univ-lille.fr> Date: Tue, 1 Mar 2022 21:48:58 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20bug:=20pseudo=20element?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content.js | 48 +++++++++++++++++++++++++++++++++++------------- main.js | 3 ++- 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/content.js b/content.js index c50936d..03f93bc 100644 --- a/content.js +++ b/content.js @@ -155,10 +155,15 @@ function midiEvent(type, data) { } }); if (eventIn) { - let els = document.querySelectorAll(element.element); - els.forEach(e => { - e.style[element.property] = value; - }); + if (element.pseudo) { + root.style.setProperty("--pseudo-" + element.element.replaceAll(':', '') + '-' + element.property, value); + } + else { + let els = document.querySelectorAll(element.element); + els.forEach(e => { + e.style[element.property] = value; + }); + } } }); }); @@ -466,10 +471,15 @@ function audioEvent() { } }); if (eventIn) { - let els = document.querySelectorAll(element.element); - els.forEach(e => { - e.style[element.property] = value; - }); + if (element.pseudo) { + root.style.setProperty("--pseudo-" + element.element.replaceAll(':', '') + '-' + element.property, value); + } + else { + let els = document.querySelectorAll(element.element); + els.forEach(e => { + e.style[element.property] = value; + }); + } } }); } @@ -489,12 +499,24 @@ function pureCss() { } result.all.forEach(element => { element.templates.forEach(template => { - if (template.type == 'pure') { + if (template.type == 'pure' || element.pseudo) { if (element.element.includes(':after') || element.element.includes(':before')) { - var elemDiv = document.createElement('style'); - elemDiv.innerText = element.element + '{' + element.property + ':' + element.value + ';}'; - elemDiv.className = 'CSSLSD'; - document.body.appendChild(elemDiv); + if (template.type != 'pure') { + var elemDiv = document.createElement('style'); + elemDiv.innerText = ':root { --pseudo-' + element.element.replaceAll(':', '') + '-' + element.property + ' : "";}'; + elemDiv.className = 'CSSLSD'; + document.body.appendChild(elemDiv); + var elemDiv = document.createElement('style'); + elemDiv.innerText = element.element + '{' + element.property + ': var(--pseudo-' + element.element.replaceAll(':', '') + '-' + element.property + ');}'; + elemDiv.className = 'CSSLSD'; + document.body.appendChild(elemDiv); + } + else { + var elemDiv = document.createElement('style'); + elemDiv.innerText = element.element + '{' + element.property + ':' + element.value + ';}'; + elemDiv.className = 'CSSLSD'; + document.body.appendChild(elemDiv); + } } else { let els = document.querySelectorAll(element.element); diff --git a/main.js b/main.js index 2844aee..b8a64dd 100644 --- a/main.js +++ b/main.js @@ -199,7 +199,7 @@ function analyseAll() { var sheet = parser.parse(result.css, false, false); if (sheet !== null && sheet.cssRules.length > 0) { sheet.cssRules.forEach(element => { - if (element.declarations.length > 0) { + if (element !== null && element.declarations.length > 0) { element.declarations.forEach(css => { var templates = []; cssValue = css.valueText; @@ -314,6 +314,7 @@ function analyseAll() { } all.push({ element: element.mSelectorText, + pseudo: (element.mSelectorText.includes(':') ? true : false), property: css.property, value: css.valueText, templates: templates -- GitLab