11528 sujets

JavaScript, DOM et API Web HTML5

Bonsoir tout le monde,

Je me permets de réécrire un message concernant une nouvelle demande.
Je n'ai pas énormément de connaissance en Jquery mais j'essaye de me débrouiller depuis peu.

Je souhaiterai afficher une catégorie de ma boutique au click. J'ai donc fait quelques tests. Malheureusement ma boutique s'affiche mais ne charge pas.. voici un aperçu :www.mksweb.be/test-div/test-ok.html

Pourtant celle si s'affiche correctement dans une page html simple
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
  </head>
   
  <body>
		<div id="my-store-22671038"></div>
		<div>
			<script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?22671038&data_platform=code" charset="utf-8"></script>
			<script type="text/javascript"> xProductBrowser("id=my-store-22671038", "defaultCategoryId=52465102");</script>
		</div> 
  </body>
</html>


Savez-vous me dire pourquoi?

En vous remerciant d'avance,
Je vous souhaite une excellente journée.
Modifié par NeSo (01 Nov 2020 - 19:43)
Modérateur
Bonjour,

Je ne pense pas que ce soit un problème de jquery car :

1) si on remplace jquery par du javascript standard, le contenu ne s'affiche pas mieux
2) si on vide le cache du navigateur, le contenu s'affiche la 1e fois (que ce soit avec du javascript standard ou du jquery). Ce n'est qu'à partir de la 2e fois qu'il n'affiche plus le contenu.

Attention, des fois, c'est assez long avant qu'il charge aussi !

Le code du script qui charge la boutique est extrêmement complexe. Par ailleurs, il y a des alertes dans la console, mais pas d'erreur bloquante. Du coup, il est assez difficile sans y passer énormément de temps ou bien d'avoir de la chance de trouver la raison de ce comportement.

Je dirais qu'il est probable (mais pas certain) que le script qui charge la boutique soit prévu pour s'exécuter lors du chargement initial de la page et non suite à un clic sur un bouton, ce qui fait qu'il marche par chance seulement au 1e coup suite à un clic sur un bouton.

Il faudrait poser la question sur le site qui fait ce script.

EDIT: le code de test que j'ai utilisé avec jquery (provient de tes exemples).
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Hello world</title>
    <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
     
</head>
<body>
    
    <div id="div1">test</div>
    <button>Change</button>
     
    <div id="my-store-22671038"></div>
     
    <script>
        $('button').click(function(){
			xProductBrowser("id=my-store-22671038", "defaultCategoryId=52465102");
        })
    </script>
	<script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?22671038&data_platform=code" charset="utf-8"></script>
</body>
</html>


EDIT: le code de test sans jquery que j'ai utilisé
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Hello world</title>
</head>
<body>
    
    <div id="div1">test</div>
    <button onclick="magic();">Change</button>
     
    <div id="my-store-22671038"></div>
     
	<script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?22671038&data_platform=code" charset="utf-8"></script>
    <script>
        var magic=function(){
				xProductBrowser("id=my-store-22671038", "defaultCategoryId=52465102");
        };
    </script>
</body>
</html>


Amicalement,
Modifié par parsimonhi (02 Nov 2020 - 11:01)
je vous remercie pour votre réponse,

J'imagine qu'aucune autre solution est possible? un refresh de la page au click ?
J'ai voulu tester également le chargement d'une page HTML ( contenant simplement la boutique ) directement dans une div au click.. mais je n'y suis jamais parvenu..

Une autre solution ?

Un grand merci d'avance,

Bien à vous,
NeSo
Bonsoir,

Car je souhaiterai créer une boutique incorporée sur mon site. Avec des petits pictogramme pour que les gens puisse ouvrir la bonne catégorie.. Mais avec Ecwid la seule possibilité c'est avec des onglets textes.. J'imaginais créer des click différent pour chaque pictogramme pour l'affichage de la bonne catégorie automatiquement

Maintenant ça ne me dérange pas que la page se rafraîchisse ou autre.. c'est pour éviter de devoir créer une nouvelle page HTML pour chaque catégorie..
Modérateur
Bonjour,

Apparemment, Ecwid a un truc qui s'appelle "Buy Now Button" ou "Bouton Achetez maintenant". Avec un peu de chance, c'est ça qui fera ce que tu essaies de faire.

Amicalement,