Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Ça donnerait un truc du genre:
if(window.matchMedia("(min-width:800px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
script1.onload = function() {
// Lorsque jQuery est chargé...
// On fait la même chose : chargement dynamique // mais cette fois-ci avec jQuery (c'est plus simple)
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Ça donnerait un truc du genre:
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
script1.onload = function() {
// Lorsque jQuery est chargé...
// On fait la même chose : chargement dynamique // mais cette fois-ci avec jQuery (c'est plus simple)
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Si tu ne maitrises pas le js, ce que tu veux faire va t'être très compliqué à réaliser: HTML5 : Démonstration de matchMedia
il te manque dans ton code le chargement de jquery:
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
Ça donnerait un truc du genre:
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
script1.onload = function() {
// Lorsque jQuery est chargé...
// On fait la même chose : chargement dynamique // mais cette fois-ci avec jQuery (c'est plus simple)
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
En fait dans cet exemple, c'est si tu n'as pas jquery déjà chargé. Dans ton exemple jquery c'est la variable script1 à laquelle tu as oublié de mettre la propriété src. Et dan ston exemple c'ets sur l'évènement onload de script1 que tu insères dynamiquement modernizr. comme tu as omis le src, script1 n'est jamais chargé et donc modernizr jamais chargé.
Si jquery est déjà chargé, tu n'as pas besoin de script1 et le code deviendrait simplement (j'ai pas testé, mais ça devrait être ça):
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Si tu ne maitrises pas le js, ce que tu veux faire va t'être très compliqué à réaliser: HTML5 : Démonstration de matchMedia
il te manque dans ton code le chargement de jquery:
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
Ça donnerait un truc du genre:
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
script1.onload = function() {
// Lorsque jQuery est chargé...
// On fait la même chose : chargement dynamique // mais cette fois-ci avec jQuery (c'est plus simple)
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
En fait dans cet exemple, c'est si tu n'as pas jquery déjà chargé. Dans ton exemple jquery c'est la variable script1 à laquelle tu as oublié de mettre la propriété src. Et dans ton exemple c'est sur l'évènement onload de script1 que tu insères dynamiquement modernizr. Comme tu as omis le src, script1 n'est jamais chargé et donc modernizr jamais chargé non plus.
Si jquery est déjà chargé, tu n'as pas besoin de script1 et le code deviendrait simplement (j'ai pas testé, mais ça devrait être ça):
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
Si tu ne maitrises pas le js, ce que tu veux faire va t'être très compliqué à réaliser: HTML5 : Démonstration de matchMedia
il te manque dans ton code le chargement de jquery:
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
Ça donnerait un truc du genre:
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
script1.onload = function() {
// Lorsque jQuery est chargé...
// On fait la même chose : chargement dynamique // mais cette fois-ci avec jQuery (c'est plus simple)
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
En fait dans cet exemple, c'est si tu n'as pas jquery déjà chargé. Dans ton exemple jquery c'est la variable script1 à laquelle tu as oublié de mettre la propriété src. Et dans ton exemple c'est sur l'évènement onload de script1 que tu insères dynamiquement modernizr. Comme tu as omis le src, script1 n'est jamais chargé et donc modernizr jamais chargé non plus.
Si jquery est déjà chargé, tu n'as pas besoin de script1 et le code deviendrait simplement (j'ai pas testé, mais ça devrait être ça):
Grr, j'ai bêtement copié collé ton code pour la balise #CHEMIN, mais tu avais oublié là aussi l'accolade fermante. Ca devrait être :
$.getScript('#CHEMIN{scripts/modernizr.min.js}');
et non pas:
$.getScript('#CHEMIN{scripts/modernizr.min.js');
donc tu peux essayer:
if(window.matchMedia("(max-width:640px)").matches) {
$.getScript('#CHEMIN{scripts/modernizr.min.js}');
}
Le 24/01/2018 à 20:04, Jean-Christophe Villeneuve a écrit :
Oui, j'en était arrivé là de mes recherches, j'ai donc tenté un
<script>
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.onload = function() {
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
</script>
dans le head mais le script modernizr.min.js ne se charge jamais
Bon faut dire que le js et le php sont assez opaques pour moi :-\
Le 24/01/2018 à 19:45, 6ril a écrit :
Le 24/01/2018 à 17:14, Jean-Christophe Villeneuve a écrit :
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile\.css" rel="stylesheet" type="text/css" media="screen and \(max\-width: 640px\)" />
il te manque dans ton code le chargement de jquery:
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
Ça donnerait un truc du genre:
if(window.matchMedia("(max-width:640px)").matches) {
// Chargement de jQuery dans un nouvel élément <script> ajouté à la section <head>
var script1 = document.createElement('script');
script1.type='text/javascript';
script1.src = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js';
script1.onload = function() {
// Lorsque jQuery est chargé...
// On fait la même chose : chargement dynamique // mais cette fois-ci avec jQuery (c'est plus simple)
$.getScript('#CHEMIN{scripts/modernizr.min.js');
}
// Insertion dans le DOM de la balise script initiale
document.getElementsByTagName('head')[0].appendChild(script1);
}
En fait dans cet exemple, c'est si tu n'as pas jquery déjà chargé. Dans ton exemple jquery c'est la variable script1 à laquelle tu as oublié de mettre la propriété src. Et dans ton exemple c'est sur l'évènement onload de script1 que tu insères dynamiquement modernizr. Comme tu as omis le src, script1 n'est jamais chargé et donc modernizr jamais chargé non plus.
Si jquery est déjà chargé, tu n'as pas besoin de script1 et le code deviendrait simplement (j'ai pas testé, mais ça devrait être ça):
Grr, j'ai bêtement copié collé ton code pour la balise #CHEMIN, mais tu avais oublié là aussi l'accolade fermante. Ca devrait être :
$.getScript('#CHEMIN{scripts/modernizr.min.js}');
et non pas:
$.getScript('#CHEMIN{scripts/modernizr.min.js');
donc tu peux essayer:
if(window.matchMedia("(max-width:640px)").matches) {
$.getScript('#CHEMIN{scripts/modernizr.min.js}');
}
-----Message d'origine-----
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net]
Envoyé : mercredi 24 janvier 2018 17:14
À : liste SPIP users <spip@rezo.net>
Objet : [Spip] javascript que sur mobile
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
-----Message d'origine-----
De : Jean-Christophe Villeneuve [mailto:jcvilleneuve@cegetel.net]
Envoyé : mercredi 24 janvier 2018 17:14
À : liste SPIP users <spip@rezo.net>
Objet : [Spip] javascript que sur mobile
Hello
Y a-t-il un moyen pour n'activer un javascript que sur les petits écrans.
Pour une feuille CSS, c'est simple
<link href="mobile.css" rel="stylesheet" type="text/css"
media="screen and (max-width: 640px)" />
mais pour un javascript ?
_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net