2017-10-11 36 views
0

请参阅下面的错误我得到的截图:Shopify错误:e.getBoundingClientRect不是一个函数(在widget.js)

enter image description here

遗漏的类型错误:e.getBoundingClientRect不是功能(在widget.js)

要重现该问题,我做的在我们未公布的Shopify主题如下:

  • 去购物车页面
  • 点击任意图片进入产品页面
  • URL更改产品页面
  • 产品页面加载
  • 开发工具不明确的“控制台”选项卡,这意味着该页面还没有完全重新加载,只部分重载
  • 这个错误发生开始,每当我向上或向下滚动页面
  • 按F5(刷新力页)完全重新加载页面,这个错误消失

我们USI在Shopify应用程序中进行评论,它负责widget.js文件。经过艰难的F5刷新后,评论会加载到产品页面中。但是他们不会在上面的情况下加载,您可以从购物车页面导航到产品页面。

有关此主题的某些操作会导致此“懒惰页面加载”行为,并导致我们的Shopify应用程序崩溃。

我很想保留部分加载行为,因为它只是通过重新加载产品页面HTML本身来最大限度地减少页面加载时间,但它破坏了Shopify应用程序的功能。

我现在的想法是把在一个黑客就像这样:

的setInterval(函数(){/ 检测URL变化,然后停止所有流程和力量重装页/},1);

但我不太喜欢这个解决方案,因为它感觉像一个创可贴可能并不总是奏效。相反,我认为解决根本问题是一个更好的主意,我相信它在主题代码本身中(因此也是为此Bug提供支持的原因)。

我们正在使用的当前发布的主题没有此问题,因为每次更改URL都会导致整页重新加载。

有没有人遇到过这个问题,如果是的话,你有什么建议如何解决它?我已经通过电子邮件发送了Shopify支持,并很乐意在这里为任何感兴趣的人分享他们的回复。

提前致谢!

回答

0

因此,我可以使用纯Javascript来强制更改URL以重新加载整个页面,使用cookie记录上次加载的URL,剥离功能以删除#右侧的所有内容? URL中的字符(以便产品变体等变化仍然只使用部分加载),然后使用setInterval()来检测URL何时更改。这似乎工作得很好,虽然我不禁感到有点哈克这样做...

相关问题