【发布时间】:2017-10-11 11:55:56
【问题描述】:
请查看下面的屏幕截图以了解我遇到的错误:
未捕获的 TypeError:e.getBoundingClientRect 不是函数(在 widget.js 中)
为了重现该问题,我在我们未发布的 Shopify 主题中执行以下操作:
- 进入购物车页面
- 点击任意图片进入产品页面
- 产品页面的 URL 更改
- 产品页面加载
- 开发工具没有清除“控制台”选项卡,这意味着页面没有完全重新加载,只是部分重新加载
- 每当我向上或向下滚动页面时都会出现此错误
- 按 F5(强制刷新页面)会完全重新加载页面并且此错误消失
我们使用 Shopify 应用进行评论,它负责 widget.js 文件。硬 F5 刷新后评论加载到产品页面。但在上述情况下,它们不会加载,您从购物车页面导航到产品页面。
这个主题的某些原因导致了这种“延迟页面加载”行为,并导致我们的 Shopify 应用程序崩溃。
我希望保留部分加载行为,因为它确实通过仅重新加载产品页面 HTML 本身来最大限度地减少页面加载时间,但它破坏了我们 Shopify 应用程序的功能。
我目前的想法是像这样进行破解:
setInterval(function(){ /检测 URL 变化,然后停止所有进程并强制重新加载页面/ }, 1);
但我不太喜欢这种解决方案,因为它感觉就像是创可贴,可能并不总是有效。相反,我认为修复根本问题会是一个更好的主意,我认为这在主题代码本身中(因此在此错误上 sic-ing Shopify Support 的原因)。
我们使用的当前发布的主题没有这个问题,因为每次 URL 更改都会导致整个页面重新加载。
以前有没有人遇到过这个问题,如果有,您对如何解决这个问题有什么建议吗?我已经向 Shopify 支持发送了电子邮件,并很乐意在此处为任何感兴趣的人分享他们的回复。
提前致谢!
【问题讨论】:
标签: themes runtime-error lazy-loading shopify partial-views