由速度优化自由职业者添加的脚本中出现意外语法错误 ')' Shopify Dawn 12.0

问题描述 投票:0回答:1

我聘请了一名自由职业者来优化我网站的速度。她做得很快,当她完成时,得分已经达到了 90 年代中期。当时唯一的问题是我在产品页面中遇到了一个错误,但仅限于 Linux 桌面。 Windows、android、ios,所有页面加载都没有错误且快速。我可以注释掉这行精简的 JavaScript 代码,一切都按预期工作。然而,网站速度下降到 50 秒和 40 秒以上。我还收到了有关单轨列车无法加载、shopify 店面收件箱 v2 或类似内容的新错误,以及一些有关 Produce/v2 或类似内容的 404 错误。代码通过片段文件元标记呈现在 theme.liquid 文件中。元标记文件内是您的原始元标记文件,并在最底部添加了以下 javascript 精简代码行:

const Observer=new MutationObserver(e=>{e.forEach(({addedNodes:e})=>{e.forEach(e=>{1===e.nodeType&&"IFRAME"===e.tagName&&(e .src.includes("youtube.com")||e.src.includes("vimeo.com"))&&(e.setAttribute("loading","lazy"),e.setAttribute("data-src" ,e.src),e.removeAttribute("src")),1===e.nodeType&&"LINK"===e.tagName&&(e.href.includes("place")||e.href.includes ("vimo.com"))&&(e.setAttribute("data-href",e.href),e.removeAttribute("href")),1!==e.nodeType||"IMG"!== e.tagName||e.src.includes("data:image")||e.setAttribute("loading","lazy"),1===e.nodeType&&"SCRIPT"===e.tagName&&("回旋镖")==e.className&&(e.type="text/lazyload"),e.innerHTML.includes("asyncLoad")&&(e.innerHTML=e.innerHTML.replace("if(window.attachEvent)" ,"document.addEventListener('asyncLazyLoad',function(event){asyncLoad();});if(window.attachEvent)").replaceAll(", asyncLoad",", function(){}")),( e.innerHTML.includes("PreviewBarInjector")||e.innerHTML.includes("adminBarInjector"))&&(e.innerHTML=e.innerHTML.replace("DOMContentLoaded","asyncLazyLoad")),(e.src.包含(“资产/店面”)||e.src.includes(“资产/shopify_pay/”)||e.src.includes(“cdn.judge.me”))&&(e.setAttribute(“data-src”) ",e.src),e.removeAttribute("src")),(e.innerText.includes("gtm.start")||e.innerText.includes("webPixelsManager")||e.innerText.includes( "cdn.judge.me")||e.innerText.includes("boosterapps"))&&(e.type="text/lazyload"))})})});observer.observe(document.documentElement,{子列表:!0,子树:!0}); (()=>{var e=class extends HTMLElement{constructor(){super();this._shadowRoot=this.attachShadow({mode:"open"}),this._shadowRoot.innerHTML=':host img { 指针-事件:无;位置:绝对;顶部:0;左侧:0;宽度:99vw;高度:99vh;最大宽度:99vw;最大高度:99vh;'}connectedCallback(){this._fullImageEl=this._shadowRoot .querySelector("#hell"),this._fullImageEl.src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8000 8000 '%3E%3C/svg%3E"}};customElements.define("live-55",e);})();document.head.insertAdjacentHTML('afterend', ``); {{ 'boldapps.js' |资产网址 |脚本标签 }}

我尝试在给出语法的地方删除并添加圆括号和方括号。我尝试添加条件语句以使代码更可靠。我尝试让营销人员检查一下。我在 Shopify 支持下尝试了多个聊天事件。我尝试将代码粘贴到v.s.代码编辑器并在那里调试它。我期望可以简单地删除“)”来修复错误。实际上,我花了几个小时尝试不同的工具来帮助调试代码。

javascript linux syntax shopify
1个回答
0
投票

使用此未缩小版本的代码代替上述代码。

const observer = new MutationObserver((e) => {
  e.forEach(({ addedNodes: e }) => {
    e.forEach((e) => {
      1 === e.nodeType &&
        "IFRAME" === e.tagName &&
        (e.src.includes("youtube.com") || e.src.includes("vimeo.com")) &&
        (e.setAttribute("loading", "lazy"),
        e.setAttribute("data-src", e.src),
        e.removeAttribute("src")),
        1 === e.nodeType &&
          "LINK" === e.tagName &&
          (e.href.includes("place") || e.href.includes("vimo.com")) &&
          (e.setAttribute("data-href", e.href), e.removeAttribute("href")),
        1 !== e.nodeType ||
          "IMG" !== e.tagName ||
          e.src.includes("data:image") ||
          e.setAttribute("loading", "lazy"),
        1 === e.nodeType &&
          "SCRIPT" === e.tagName &&
          "boomerang" == e.className &&
          (e.type = "text/lazyload"),
        e.innerHTML.includes("asyncLoad") &&
          (e.innerHTML = e.innerHTML
            .replace(
              "if(window.attachEvent)",
              "document.addEventListener('asyncLazyLoad',function(event){asyncLoad();});if(window.attachEvent)"
            )
            .replaceAll(", asyncLoad", ", function(){}")),
        (e.innerHTML.includes("PreviewBarInjector") ||
          e.innerHTML.includes("adminBarInjector")) &&
          (e.innerHTML = e.innerHTML.replace(
            "DOMContentLoaded",
            "asyncLazyLoad"
          )),
        (e.src.includes("assets/storefront") ||
          e.src.includes("assets/shopify_pay/") ||
          e.src.includes("cdn.judge.me")) &&
          (e.setAttribute("data-src", e.src), e.removeAttribute("src")),
        (e.innerText.includes("gtm.start") ||
          e.innerText.includes("webPixelsManager") ||
          e.innerText.includes("cdn.judge.me") ||
          e.innerText.includes("boosterapps")) &&
          (e.type = "text/lazyload");
    });
  });
});
observer.observe(document.documentElement, { childList: !0, subtree: !0 });
(() => {
  var e = class extends HTMLElement {
    constructor() {
      super();
      (this._shadowRoot = this.attachShadow({ mode: "open" })),
        (this._shadowRoot.innerHTML =
          ":host img { pointer-events: none; position: absolute; top: 0; left: 0; width: 99vw; height: 99vh; max-width: 99vw; max-height: 99vh;");
    }
    connectedCallback() {
      (this._fullImageEl = this._shadowRoot.querySelector("#hell")),
        (this._fullImageEl.src =
          "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8000 8000'%3E%3C/svg%3E");
    }
  };
  customElements.define("live-55", e);
})();
document.head.insertAdjacentHTML("afterend", ``);
{{ 'boldapps.js' | asset_url | script_tag }}
© www.soinside.com 2019 - 2024. All rights reserved.