iOS 上的 Safari 在 javascript 执行期间抛出 SyntaxError,但在任何其他 devices/browsers 上都不会

Safari on iOS throwing a SyntaxError during javascript execution, but not on any other devices/browsers

在 iOS 上的 Safari 上浏览我们的网站(这是一个 Shopify 商店)时,当执行 javascript 时,它会抛出 SyntaxError 并停止执行 JS 文件的其余部分,破坏其他一些功能。但是,这不会发生在任何其他设备或浏览器上,只有移动版 Safari。

它抛出的错误是:

单击该文件会将我带到这段代码:

(这一切都使用 BrowserStack 在 iPhone 上进行了测试,因此我能够访问开发工具以查看错误)

我找不到代码有任何问题,因为它通过了我尝试过的所有验证,而且据我所知,没有使用无效或非法的字符串。列出的所有元素都存在于页面上。

带有此代码 运行 的示例页面是: https://cancer.livebetterwith.com/products/ibeani-e-readertablet-cushion

但它发生在我们网站上的每个产品页面上。

我试过:

它标记为错误的具体代码段是:

  /**
   * DOM node selectors.
   */
  setNodeSelectors() {
    this.form = null;
    this.target = null;

    this.nodeSelectors = {
      modal: document.querySelector(selectors.modal),
      form: document.querySelector(selectors.form),
      addToCart: document.querySelector(selectors.addToCart),
      charityAddToCart: document.querySelector(selectors.charityAddToCart),
      continueShopping: document.querySelector(selectors.continueShopping),
      buttonGroups: document.querySelector(selectors.buttonGroups),
      sections: [...document.querySelectorAll(selectors.section)],
      tabControls: [...document.querySelectorAll(selectors.tabControl)],
      tabContents: [...document.querySelectorAll(selectors.tabContent)],
      condition: document.querySelector(selectors.condition),
      charity: document.querySelector(selectors.charity),
    };
  },

但是可以在这里查看整个文件(预编译):

https://pastebin.com/49GLfmGi

我花了大约 4 个小时试图找出问题所在,但我完全被卡住了,我们将不胜感激任何帮助。

谢谢

您有一个无效的选择器 [js-vat-exemption="addToCard,您缺少 "]。这就在错误行之前,很可能是导致错误的原因。

顺便说一句,对于这种选择器(带值的属性),如果值不包含空格或任何这些字符:" ' ` = < > 你可以省略引号。