11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous !

Je suis en train de réaliser la version mobile de mon site à partir de mon CMS. Quand l'internaute se connecte sur cette version mobile à partir d'un iPhone, un alerte javacript lui propose de télécharger l'application dédiée. J'ai donc fait mon petit bout de code comme une grande... Par contre j'ai un petit souci qui pose grand problème de conscience ! Smiley murf

Je pense que mon code est tout bon, mais seul le body onload me pose souci. En effet, je ne peux ni modifier la balise <body>, ni écrire entre les <head> (à cause de mon CMS propriétaire). Comment je peux réécrire mon code pour l'implémenter directement entre mes balise <body> ?

Merciiiii Smiley smile
Sarah


<script type="text/javascript">
function iPhoneAlert() {
if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent.
match(/iPod/i))){
var question = confirm("Souhaitez-vous télécharger l'application iPhone ?")
if (question){window.location = "http://itunes.apple.com/fr/app/...";}
else{}
}
}
</script>
<body onLoad="iPhoneAlert();"></body>
Tu peux directement mettre ton execution dans la page, pas besoin de la mettre dans onload.

<body>
<script type="text/javascript"> 
if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent. 
match(/iPod/i))){ 
   var question = confirm("Souhaitez-vous télécharger l'application iPhone ?") 
   if (question){window.location = "http://itunes.apple.com/fr/app/...";} 
   else{} 
} 
</script>
...
...
... 
</body> 

Modifié par Borak (21 Oct 2010 - 11:42)
Tu peux placer ta balise <script> juste avant la fin de ton body.


...
...
<script type="text/javascript"> 

if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent. 
match(/iPod/i))){ 
    if ( confirm("Souhaitez-vous télécharger l'application iPhone ?")) 
          window.location = "http://itunes.apple.com/fr/app/..."; 
} 
</script> 
</body>
</html>
Super, ça marche! Merci de vos réponses ! Je suis trop nulle d'être passé à côté d'un truc aussi simple...

Petite question subsidiaire : si je veux que cet alert javacript ne s'affiche qu'une seule fois sur l'iPhone de l'internaute, comme je peux faire ? Car là le message s'affiche s'affiche à chaque chargement de ma home mobile...
Hmmm... Malheureusement, je ne peux pas implanter de Php (ni asp) dans le cms que j'utilise... Il y a un autre moyen? (cookie purement Javascript... ?)