Bonjour,
Il semble que le code “<script type=‘text/javascript’ src=”‘JSRESOURCEURL:]’>" ne soit pas interprété en responsive
Est ce toujours d’actualité pour le responsive, y a t’il une autre manière de faire ?
cela fonctionne très bien en non responsive
Cordialement,
Olivier Migliorini
david
(David AZOULAY)
January 2, 2018, 2:35pm
2
En responsive comme en legacy les resources SCRIPT
(JavaScript) et STYLES
de l’objet métier sont inclues automatiquement sans avoir besoin de les déclarer explicitement via des tags en []
(cette approche doit donc être réservé à des cas plus particuliers)
David,
en effet, il s’agit bien d’un cas particulier, puisqu’il s’agit un fichier js, commun à plusieurs objets
Cordialement,
Olivier Migliorini
david
(David AZOULAY)
January 2, 2018, 3:24pm
4
OK dans ce cas (je laisse François confirmer) il faut utiliser la fonction loadPart
ou la fonctions loadScript
cf. https://www.simplicite.io/resources/4.0/jsdocui/Simplicite.UI.Engine.html
david
(David AZOULAY)
January 2, 2018, 3:30pm
5
PS: Et pour l’URL de la resource partagée (donc de niveau disposition) il faut utiliser la fonction dispositionResourceURL
de Simplicite.Ajax
cf. https://www.simplicite.io/resources/4.0/jsdocui/Simplicite.Ajax.html
Francois
(François Genestin)
January 2, 2018, 4:00pm
6
en responsive, on est sur une page unique et donc le chargement à la volée de script ne peut plus se faire avec cette syntaxe entre crochets. Le template d’un objet est chargé via jquery et ne traite que du DOM.
Il faut donc passer par les hooks client de l’objet et ne plus jamais mettre de script dans le template HTML.
voir les hooks client dans
https://www.simplicite.io/resources/documentation/04-ui/responsive.md
Il faut utiliser la ressource SCRIPT de l’objet, par exemple pour y charger un script spécifique avant d’afficher quoique ce soit :
(function(ui) {
if (!ui) return; // not responsive UI
var app = ui.getAjax(); // Ajax services
Simplicite.UI.hooks.myObject = function(obj, callback) {
ui.loadScript({
url: app.dispositionResourceURL("mySharedScript","JS"),
onload: callback
});
};
})(window.$ui);