11496 sujets

JavaScript, DOM et API Web HTML5

Bonjour à Tous,
je travaille actuellement sur la plateforme Plone,
j'avais mis en place un script qui était fonctionnel, dont l'objectif est d'afficher les publications d'un type de contenu sous forme de marqueur dans une carto googleMap.
Dans l'idée, quand on clique sur un marqueur, un popup google s'ouvre en affichant le contenu (titre, 1 à 4 logo, coordonnées).

Mais voilà,
depuis que le nombre de publication de mon type de contenu est passé de 30 à bien plus, mon script ne fonctionne plus. Des retours à la ligne sont générés, et cela fait buger le script.
Pour information, quand je regarde le code généré à l'aide de firefox, et que je le colle tout simplement, la page fonctionne à nouveau.
Auriez-vous une idée ou une piste à me suggérer ?
Merci

Script anciennement fonctionnel :
<tal:block replace="structure string:<script>" />
        var locations = [<tal:block repeat="partenaires variablePartenaires">['<h4><tal:block condition="partenaires/title" replace="partenaires/title" /></h4><a tal:attributes="title string:Atteindre la page; href partenaires/absolute_url" tal:condition="partenaires/absolute_url"><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('logo_bloc', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire ${partenaires/title}" tal:condition="partenaires/logo_bloc" /></a><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('second_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/second_logo" /><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('troisieme_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/troisieme_logo" /><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('quatrieme_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/quatrieme_logo" /><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('cinquieme_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/cinquieme_logo" />',<tal:block condition="partenaires/latitude_googlemap" replace="structure partenaires/latitude_googlemap" />,<tal:block condition="partenaires/longitude_googlemap" replace="structure partenaires/longitude_googlemap" />,'images/gmap/<tal:block replace="partenaires/classe" condition="partenaires/classe" />.png'],</tal:block>];


Exemple de ce qui est généré (je ne le colle pas en entier, c'est trop long) :

<script>
var locations = [['<h4>Agence Nationale de Recherche</h4><a href="http://xxxxxxxxxx/partenaires/agence-nationale-de-recherche-1" title="Atteindre la page"><img src="http://xxxxxxxxxx/partenaires/agence-nationale-de-recherche-1/@@images/9110585d-e35b-40e4-bee1-4b48809244af.jpeg" alt="Logo du partenaire Agence Nationale de Recherche" /></a>', 48.845386, 2.378164, 'images/gmap/toutesThema.png'],['<h4>Université Nice Sophia Antipolis</h4><a href="http://xxxxxxxxxx/partenaires/universite-nice-sophia-antipolis" title="Atteindre la page"><img src="http://xxxxxxxxxx/partenaires/universite-nice-sophia-antipolis/@@images/a02ff205-551b-4aac-8229-2453f0bb30ec.jpeg" alt="Logo du partenaire Université Nice Sophia Antipolis" /></a>', 43.716805, 7.267675, 'images/gmap/toutesThema.png'],['<h4>Académie de Nice</h4><a href="http://xxxxxxxxxx/partenaires/academie-de-nice" title="Atteindre la page"><img src="http://xxxxxxxxxx/partenaires/academie-de-nice/@@images/00af94d0-a8cf-4d7f-86b1-60fa7f2641dc.jpeg" alt="Logo du partenaire Académie de Nice" /></a>', 43.7308262, 7.2740808, 'images/gmap/toutesThema.png'],];
...

note, la virgule de fin ne générait pas d’erreur quand le script était fonctionnel, je ne pense donc pas que ça vienne de là
Modifié par Guim (07 Sep 2015 - 12:07)
J'ai pas mal cogité dessus,
et j'ai eu une petite idée :
j'ai récupérer et déposé dans une div la portion de code qui commence par
<tal:block... 

de cette manière :

<div class="displayNone scriptGoogleMap">
        <tal:block repeat="partenaires variablePartenaires">['<h4><tal:block condition="partenaires/title" replace="partenaires/title" /></h4><a tal:attributes="title string:Atteindre la page; href partenaires/absolute_url" tal:condition="partenaires/absolute_url"><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('logo_bloc', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire ${partenaires/title}" tal:condition="partenaires/logo_bloc" /></a><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('second_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/second_logo" /><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('troisieme_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/troisieme_logo" /><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('quatrieme_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/quatrieme_logo" /><img tal:define="scales_image partenaires/@@images; maVariable python:scales_image.scale('cinquieme_logo', scale='thumb')" tal:attributes="src maVariable/url; alt string:Logo du partenaire" tal:condition="partenaires/cinquieme_logo" />',<tal:block condition="partenaires/latitude_googlemap" replace="structure partenaires/latitude_googlemap" />,<tal:block condition="partenaires/longitude_googlemap" replace="structure partenaires/longitude_googlemap" />,'++resource++unice.medites.images/gmap/<tal:block replace="partenaires/classe" condition="partenaires/classe" />.png'],</tal:block>
      </div>  


et dans mon script je récupère le contenu de ma iv en y retirant les espaces générés de cette manière :

var googleScript = "["+$(".scriptGoogleMap").html()+"];";
$(".newScript").html(locations);
var locations = googleScript.replace(/\s+/g,' ');


Ce que je ne comprends pas :
quand je regarde avec firebug, j'ai bien ce que je veux dans la variable locations,
pourquoi mon script n'est il pas interprété ? je n'ai aucun message d'erreur Smiley ohwell