2017-10-11 51 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何時更改。這似乎工作得很好,雖然我不禁感到有點哈克這樣做...

相關問題