Bonjour,
Je souhaite executer un script JS sur mes pages (un script qui sert à baliser toutes les valeurs numériques de la page avec un span)
et faire un refresh de ce script au moment du chargement ajax (paginations ou autres), car un script ne s'execute qu'une fois au chargement de la page
Je ne sais pas comment faire, enfin si je pourrais faire un truc pas clean mais j'aimerais faire ça bien :)
Si vous avez une petite idée.
Merci d'avance
Freed
Dans ton squelette rechargé en ajax : Après, il est sans doute possible de faire plus propre car le script est rechargé intégralement à chaque appel AJAX et n’est pas minifié. jean marie
Non…
Il te faut définir ta fonction (très certainement déjà fait)
Puis ajouter dans le document ready onAjaxLoad(nom_de_ta_fonction);
Cela rejouera ta fonction à chaque chargement ajax normalement.
Le ven. 7 août 2015 à 12:23, Jean Marie Grall <jeanmarie.listes@cousumain.info> a écrit :
Salut,
Je souhaite executer un script JS sur mes pages (un script qui sert à baliser toutes les valeurs numériques de la page avec un span) et faire un refresh de ce script au moment du chargement ajax (paginations ou autres), car un script ne s'execute qu'une fois au chargement de la page Je ne sais pas comment faire, enfin si je pourrais faire un truc pas clean mais j'aimerais faire ça bien :) Si vous avez une petite idée.Dans ton squelette rechargé en ajax :
Après, il est sans doute possible de faire plus propre car le script est rechargé intégralement à chaque appel AJAX et n’est pas minifié.
jean marie
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
Bonjour,
J'avais proposé une façon d'organiser ses fonctions javascript pour
SPIP, notamment avec l'histoire du rechargement ajax.
A voir ici Exemple d’organisation des fonctions javacript
C'est une structure que j'ai fini par adopter, mais d'autres sont possibles.
Voilà ++
Le 07/08/2015 06:07, Freed a écrit :
Bonjour,
Je souhaite executer un script JS sur mes pages (un script qui sert à
baliser toutes les valeurs numériques de la page avec un span)
et faire un refresh de ce script au moment du chargement ajax
(paginations ou autres), car un script ne s'execute qu'une fois au
chargement de la page
Je ne sais pas comment faire, enfin si je pourrais faire un truc pas
clean mais j'aimerais faire ça bien
Si vous avez une petite idée.Merci d'avance
Freed
----
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
Merci ! Cette idée me plait bien ! je ne connaissais pas cette fonction !
Mais malheureusement j’obtiens cette erreur :
TypeError: jQuery.spip.load_handlers[i].apply is not a function
http://localhost/www-fleve/prive/javascript/ajaxCallback.js
Line 32
Mon code (squelettes/javascript/scripts.js) intégré en pied de page
$(document).ready(function(){
jQuery.fn.wrapNumbers = function () {
$(this).contents()
.filter(function() { return this.nodeType != Node.TEXT_NODE; })
.each(function () { $(this).wrapNumbers(); });
$(this).contents()
.filter(function() { return this.nodeType == Node.TEXT_NODE; })
.each(function () {
$(this).replaceWith(
$(this).text().replace(/(\d+)/g, ‹ $1 ›)
);
});
}$(‹ body ›).wrapNumbers();
onAjaxLoad(‹ wrapNumbers ›);});
Cdt,
Freed
Le 2015-08-07 12:24, Quentin Drouet a écrit :
Non…
Il te faut définir ta fonction (très certainement déjà fait)
Puis ajouter dans le document ready onAjaxLoad(nom_de_ta_fonction);
Cela rejouera ta fonction à chaque chargement ajax normalement.
Le ven. 7 août 2015 à 12:23, Jean Marie Grall <jeanmarie.listes@cousumain.info> a écrit :
Salut,
Je souhaite executer un script JS sur mes pages (un script qui sert à baliser toutes les valeurs numériques de la page avec un span) et faire un refresh de ce script au moment du chargement ajax (paginations ou autres), car un script ne s'execute qu'une fois au chargement de la page Je ne sais pas comment faire, enfin si je pourrais faire un truc pas clean mais j'aimerais faire ça bien :) Si vous avez une petite idée.Dans ton squelette rechargé en ajax :
Après, il est sans doute possible de faire plus propre car le script est rechargé intégralement à chaque appel AJAX et n’est pas minifié.
jean marie
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
Ceci devrait fonctionner
$(document).ready(function(){
jQuery.fn.wrapNumbers = function () {
$(this).contents()
.filter(function() { return this.nodeType != Node.TEXT_NODE; })
.each(function () { $(this).wrapNumbers(); });
$(this).contents()
.filter(function() { return this.nodeType == Node.TEXT_NODE; })
.each(function () {
$(this).replaceWith(
$(this).text().replace(/(\d+)/g, ‹ $1 ›)
);
});
}var wrap_numbers = function(){$(‹ body ›).wrapNumbers();}
onAjaxLoad(wrapNumbers);
});
Le ven. 7 août 2015 à 14:42, Freed <contact@freedfromparis.com> a écrit :
Merci ! Cette idée me plait bien ! je ne connaissais pas cette fonction !
Mais malheureusement j’obtiens cette erreur :
TypeError: jQuery.spip.load_handlers[i].apply is not a function
http://localhost/www-fleve/prive/javascript/ajaxCallback.js
Line 32Mon code (squelettes/javascript/scripts.js) intégré en pied de page
$(document).ready(function(){
jQuery.fn.wrapNumbers = function () {
$(this).contents()
.filter(function() { return this.nodeType != Node.TEXT_NODE; })
.each(function () { $(this).wrapNumbers(); });
$(this).contents()
.filter(function() { return this.nodeType == Node.TEXT_NODE; })
.each(function () {
$(this).replaceWith(
$(this).text().replace(/(\d+)/g, ‹ $1 ›)
);
});
}$(‹ body ›).wrapNumbers();
onAjaxLoad(‹ wrapNumbers ›);});
Cdt,
Freed
Le 2015-08-07 12:24, Quentin Drouet a écrit :
Non…
Il te faut définir ta fonction (très certainement déjà fait)
Puis ajouter dans le document ready onAjaxLoad(nom_de_ta_fonction);
Cela rejouera ta fonction à chaque chargement ajax normalement.
Le ven. 7 août 2015 à 12:23, Jean Marie Grall <jeanmarie.listes@cousumain.info> a écrit :
Salut,
Je souhaite executer un script JS sur mes pages (un script qui sert à baliser toutes les valeurs numériques de la page avec un span) et faire un refresh de ce script au moment du chargement ajax (paginations ou autres), car un script ne s'execute qu'une fois au chargement de la page Je ne sais pas comment faire, enfin si je pourrais faire un truc pas clean mais j'aimerais faire ça bien :) Si vous avez une petite idée.Dans ton squelette rechargé en ajax :
Après, il est sans doute possible de faire plus propre car le script est rechargé intégralement à chaque appel AJAX et n’est pas minifié.
jean marie
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
Pour ceux que ça intéresse :
En effet, j’ai essayé ça entre temps (qui ressemble à ce que tu me proposes)
jQuery.fn.wrapNumbers = function () {
$(this).contents()
.filter(function() { return this.nodeType != Node.TEXT_NODE; })
.each(function () { $(this).wrapNumbers(); });
$(this).contents()
.filter(function() { return this.nodeType == Node.TEXT_NODE; })
.each(function () {
$(this).replaceWith(
$(this).text().replace(/(\d+)/g, ‹ $1 ›)
);
});
}
function initWrapNumbers() {
$(‹ body ›).wrapNumbers();
}onAjaxLoad(initWrapNumbers);
ça fonctionne
Merci ![]()
Freed
Le 2015-08-07 14:44, Quentin Drouet a écrit :
Ceci devrait fonctionner
$(document).ready(function(){
jQuery.fn.wrapNumbers = function () {
$(this).contents()
.filter(function() { return this.nodeType != Node.TEXT_NODE; })
.each(function () { $(this).wrapNumbers(); });
$(this).contents()
.filter(function() { return this.nodeType == Node.TEXT_NODE; })
.each(function () {
$(this).replaceWith(
$(this).text().replace(/(\d+)/g, ‹ $1 ›)
);
});
}var wrap_numbers = function(){$(‹ body ›).wrapNumbers();}
onAjaxLoad(wrapNumbers);
});
Le ven. 7 août 2015 à 14:42, Freed <contact@freedfromparis.com> a écrit :
Merci ! Cette idée me plait bien ! je ne connaissais pas cette fonction !
Mais malheureusement j’obtiens cette erreur :
TypeError: jQuery.spip.load_handlers[i].apply is not a function
http://localhost/www-fleve/prive/javascript/ajaxCallback.js
Line 32Mon code (squelettes/javascript/scripts.js) intégré en pied de page
$(document).ready(function(){
jQuery.fn.wrapNumbers = function () {
$(this).contents()
.filter(function() { return this.nodeType != Node.TEXT_NODE; })
.each(function () { $(this).wrapNumbers(); });
$(this).contents()
.filter(function() { return this.nodeType == Node.TEXT_NODE; })
.each(function () {
$(this).replaceWith(
$(this).text().replace(/(\d+)/g, ‹ $1 ›)
);
});
}$(‹ body ›).wrapNumbers();
onAjaxLoad(‹ wrapNumbers ›);});
Cdt,
Freed
Le 2015-08-07 12:24, Quentin Drouet a écrit :
Non…
Il te faut définir ta fonction (très certainement déjà fait)
Puis ajouter dans le document ready onAjaxLoad(nom_de_ta_fonction);
Cela rejouera ta fonction à chaque chargement ajax normalement.
Le ven. 7 août 2015 à 12:23, Jean Marie Grall <jeanmarie.listes@cousumain.info> a écrit :
Salut,
Je souhaite executer un script JS sur mes pages (un script qui sert à baliser toutes les valeurs numériques de la page avec un span) et faire un refresh de ce script au moment du chargement ajax (paginations ou autres), car un script ne s'execute qu'une fois au chargement de la page Je ne sais pas comment faire, enfin si je pourrais faire un truc pas clean mais j'aimerais faire ça bien :) Si vous avez une petite idée.Dans ton squelette rechargé en ajax :
Après, il est sans doute possible de faire plus propre car le script est rechargé intégralement à chaque appel AJAX et n’est pas minifié.
jean marie
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone
–
**Frédéric Levé** 22, rue de la Chine 75020 Paris [contact@freedfromparis.com](mailto:contact@freedfromparis.com) Tél. : 06 83 96 95 82
Salut Quentin,
merci pour cette solution, je viens de la mettre en place, c’est effectivement bcp mieux !
jean marie