2017-10-11 7 views
0

S'il vous plaît voir la capture d'écran ci-dessous pour l'erreur que je reçois:erreur Shopify: e.getBoundingClientRect est pas une fonction (en widget.js)

enter image description here

Uncaught TypeError: e.getBoundingClientRect est pas fonction (en widget.js)

pour reproduire le problème, je fais ce qui suit dans notre thème Shopify inédit:

  • aller au panier Page
  • cliquez sur une image pour aller à la page du produit
  • changements d'URL à la page du produit
  • chargement de la page produit
  • outils dev ne pas clairement onglet « Console », qui signifie que la page n'a pas complètement rechargées, seulement partiellement rechargées
  • cette erreur commence à se produire chaque fois que je défiler vers le haut ou vers le bas la page
  • frapper F5 (force rafraîchir la page) rechargements la page complète et cette erreur disparaît

Nous sommes usi Une application Shopify pour les commentaires et il est responsable du fichier widget.js. Les commentaires se chargent dans la page du produit après un rafraîchissement dur F5. Mais ils ne se chargent pas dans le cas ci-dessus, où vous accédez à la page du produit à partir de la page du panier.

Quelque chose à propos de ce thème est à l'origine de ce comportement de "chargement de page paresseux" et il provoque la rupture de nos applications Shopify. Je voudrais préserver le comportement de chargement partiel, car il réduit vraiment le temps de chargement de la page en rechargeant uniquement la page HTML du produit, mais cela viole la fonctionnalité de nos applications Shopify.

Ma pensée actuelle est de mettre en fiacre comme ceci:

setInterval (function() {/ changement d'URL détecter, puis arrêtez tous les processus et la force reload la page /}, 1);

Mais je n'aime pas vraiment cette solution parce qu'elle ressemble à un pansement qui ne fonctionne pas toujours. Au lieu de cela, je pense que ce serait une bien meilleure idée de résoudre le problème de la racine, ce que je crois être dans le code du thème lui-même (d'où la raison pour laquelle Shopify Support sur ce bug).

Le thème publié actuellement que nous utilisons n'a pas ce problème car chaque modification d'URL entraîne un rechargement complet de la page.

Quelqu'un a-t-il déjà rencontré ce problème, et si oui avez-vous des recommandations sur la façon de le réparer? J'ai déjà envoyé un e-mail à l'assistance de Shopify et je partagerai volontiers leur réponse ici pour tous ceux qui sont intéressés.

Merci d'avance!

Répondre

0

J'ai donc pu me débarrasser de cette erreur en utilisant du Javascript pur pour forcer un changement d'URL à recharger toute la page en utilisant un cookie pour enregistrer la dernière URL chargée, une fonction de décapage pour enlever tout à droite de # et ? caractères dans l'URL (de sorte que les changements dans des choses comme la variante du produit utilisent toujours seulement la charge partielle), puis un setInterval() pour détecter quand l'URL a changé. Cela semble fonctionner assez bien, bien que je ne peux pas m'empêcher de me sentir un peu hacky en train de faire ça ...