Răsfoiți Sursa

added style index for duplicated style elements with same media

Gildas 7 ani în urmă
părinte
comite
47af6f2052

+ 1 - 1
lib/single-file/css-rules-matcher.js

@@ -35,7 +35,7 @@ this.RulesMatcher = this.RulesMatcher || (() => {
 				if (styleElement.sheet) {
 					if (styleElement.media && styleElement.media != MEDIA_ALL) {
 						const mediaInfo = createMediaInfo(styleElement.media);
-						this.mediaAllInfo.medias.set(styleElement.media, mediaInfo);
+						this.mediaAllInfo.medias.set(styleIndex + "-" + styleElement.media, mediaInfo);
 						getMatchedElementsRules(doc, styleElement.sheet.cssRules, mediaInfo, styleIndex, matchedElementsCache, unmatchedSelectorsCache);
 					} else {
 						getMatchedElementsRules(doc, styleElement.sheet.cssRules, this.mediaAllInfo, styleIndex, matchedElementsCache, unmatchedSelectorsCache);

+ 2 - 2
lib/single-file/css-rules-minifier.js

@@ -31,11 +31,11 @@ this.cssMinifier = this.cssMinifier || (() => {
 			const rulesMatcher = RulesMatcher.create(doc);
 			const mediaAllInfo = rulesMatcher.getAllMatchedRules();
 			const stats = { processed: 0, discarded: 0 };
-			doc.querySelectorAll("style").forEach(styleElement => {
+			doc.querySelectorAll("style").forEach((styleElement, styleIndex) => {
 				if (styleElement.sheet) {
 					let mediaInfo;
 					if (styleElement.media && styleElement.media != "all") {
-						mediaInfo = mediaAllInfo.medias.get(styleElement.media);
+						mediaInfo = mediaAllInfo.medias.get(styleIndex + "-" + styleElement.media);
 					} else {
 						mediaInfo = mediaAllInfo;
 					}