javascript - iOS 上的 Safari 在 javascript 执行期间抛出 SyntaxError,但在任何其他设备/浏览器上都不会

标签 javascript ios syntax-error mobile-safari

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

它抛出的错误是:

SyntaxError

单击文件会将我带到这部分代码:

Code snippet

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

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

运行此代码的示例页面是: 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 ,你错过了"] .这就在错误行之前,很可能是导致错误的原因。

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

关于javascript - iOS 上的 Safari 在 javascript 执行期间抛出 SyntaxError,但在任何其他设备/浏览器上都不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57508547/

相关文章:

javascript - 如何在.net core中没有模型的情况下将Json数据发布到 Controller

php - 在 PHP 中加密消息,在 JavaScript 中解密

ios - 我如何从 SKScene 移动到 UIViewController

javascript - 意外的标识符修复

javascript - jquery从选定的组合框获取数据属性

javascript - 客户端脚本 VS 服务器端代码

ios - 为什么 Xcode 在源代码中显示错误,但我的应用程序可以正常编译和运行?

ios - 使用证书连接到 VPN - iOS/Swift

php - 为什么空格会在 PHP 中导致 fatal error ?

python - 我的程序返回 “Unexpected EOF while parsing”或 “Expected indented block”都作为语法错误