diff --git a/Gruntfile.js b/Gruntfile.js index dd89098..0f6208c 100755 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -194,7 +194,8 @@ module.exports = function (grunt) { sitemap: "./src/web/static/sitemap.js" }, moduleEntryPoints), output: { - path: __dirname + "/build/prod" + path: __dirname + "/build/prod", + globalObject: "this" }, resolve: { alias: { diff --git a/src/web/RecipeWaiter.mjs b/src/web/RecipeWaiter.mjs index 2b0b0a0..d12005b 100755 --- a/src/web/RecipeWaiter.mjs +++ b/src/web/RecipeWaiter.mjs @@ -8,6 +8,8 @@ import HTMLOperation from "./HTMLOperation"; import Sortable from "sortablejs"; import Utils from "../core/Utils"; +/*eslint no-console: ["off"] */ + /** * Waiter to handle events related to the recipe. @@ -561,20 +563,35 @@ class RecipeWaiter { this.ingredientChildRuleID = null; // Find relevant rules in the stylesheet - for (const i in document.styleSheets[0].cssRules) { - if (document.styleSheets[0].cssRules[i].selectorText === ".ingredients") { - this.ingredientRuleID = i; - } - if (document.styleSheets[0].cssRules[i].selectorText === ".ingredients > div") { - this.ingredientChildRuleID = i; + // try { + if (document.styleSheets[0].hasOwnProperty("cssRules")) { + for (const i in document.styleSheets[0].cssRules) { + if (document.styleSheets[0].cssRules[i].selectorText === ".ingredients") { + this.ingredientRuleID = i; + } + if (document.styleSheets[0].cssRules[i].selectorText === ".ingredients > div") { + this.ingredientChildRuleID = i; + } } } + // } catch (e) { + // console.log(e.constructor); + // console.warn("Can't read the css rules of: " + document.styleSheets[0], e); + // } } if (!this.ingredientRuleID || !this.ingredientChildRuleID) return; + let ingredientRule, ingredientChildRule; - const ingredientRule = document.styleSheets[0].cssRules[this.ingredientRuleID], + // Chrome 64+ + // try { + if (document.styleSheets[0].hasOwnProperty("cssRules")) { + ingredientRule = document.styleSheets[0].cssRules[this.ingredientRuleID]; ingredientChildRule = document.styleSheets[0].cssRules[this.ingredientChildRuleID]; + } + // } catch (e) { + // console.warn("Can't read the css rules of: " + document.styleSheets[0], e); + // } if (recList.clientWidth < 450) { ingredientRule.style.gridTemplateColumns = "auto auto";