Javascript : n`oubliez pas Mac OS - Médecins Maitres

Transcription

Javascript : n`oubliez pas Mac OS - Médecins Maitres
Modifier cet article (111) Recalculer cette page *
Les Médecins Maîtres-Toile
Accueil
Boite à Outils
Javascript : n’oubliez pas Mac OS !
Publié le : 21 juin 2006
Publication antérieure :
5 mai 2004
Imprimer cet article
Auteur :
Alain Sichel †
Javascript : n’oubliez pas Mac OS !
Proposez sur votre site des scripts adaptés à Mac OS.
Sommaire
 Imprimer cette page [2]
 Ajouter cette page à vos favoris
 Mettre ce site comme page de démarrage
 Astuce pratique
De nombreux sites proposent des Javascripts qui ne fonctionnent que sous Windows, par exemple :
imprimer cette page,
ajouter cette page à vos favoris,
mettre ce site comme page de démarrage.
L’utiliseur confirmé de Mac OS sait que cela n’est même pas la peine d’essayer, mais le débutant
ne comprend pas que rien ne se produise pour une fonction implantée sur un site.
Je ne suis pas un fort en Javascript, j’ai donc demandé à des experts dans ce domaine ce qu’on
pouvait faire... mais on ne m’a rien proposé. Pourtant Javascript sait reconnaître Mac OS, il suffit
de faire
(navigator.appVersion.indexOf("Mac",0)>0)
Alors, j’ai fait des essais pour que les utilisateurs de Mac OS puissent avoir des réponses
adaptées [1].
Imprimer cette page [2]
Voici le code de ce script :
<script language="JavaScript">
<!-function Imprime() {
if (navigator.appVersion.indexOf("Mac",0)>0) {
alert("Cette fonction n\'est pas réalisable sur Macintosh.\n\nUtilisez
plutôt la combinaison de touches \"Pomme-P\"");
}
else {
window.print();
}
}
//-->
</script>
Plus qu’un simple avertissement, le message d’alerte signale à l’utilisateur une combinaison de
touches sur Mac pour lancer l’impression de la page.
Ajouter cette page à vos favoris
Voici le code de ce script :
<script language="JavaScript">
<!-function AjouFavor() {
if (navigator.appVersion.indexOf("Mac",0)>0) {
alert("Cette fonction n\'est pas réalisable sur Macintosh.\n\nUtilisez
plutôt la combinaison de touches \"Pomme-D\"");
}
else {
if ((navigator.appName.indexOf("Microsoft",0)>=0) &&
(parseInt(navigator.appVersion)>=4)) {
window.external.AddFavorite(location.href, document.title);
} else {
alert("Cette fonction n'est possible que par Internet
Explorer 4 et +\n\nPour Netscape utilisez plutôt la combinaison de touches
\"Control-D\"");
}
}
}
//-->
</script>
Ce script déclenche lui-aussi un message d’alerte pour l’utilisateur de Mac OS, proposant une
combinaison de touches sur Mac pour ajouter une page aux favoris, mais, si le visiteur utilise
Netscape sous Windows, il aura également un message adapté.
Mettre ce site comme page de démarrage
Voici le code de ce script :
<script language="JavaScript">
<!-function Demarrage(Page) {
if (navigator.appVersion.indexOf("Mac",0)>0) {
window.open('http://www.cyes.info/aide/demarrage.php');
}
else {
if (document.all && document.getElementById) {
Page.style.behavior='url(#default#homepage)';
Page.setHomePage('http://www.cyes.info');
}
else {
window.open('http://www.cyes.info/aide/demarrage.php');
}
}
}
/-->
</script>
Si on utilise Microsoft Internet Explorer sous Windows, le script ouvre la fenêtre de dialogue pour
proposer de mettre le site comme page de démarrage. Dans les autres cas, le script ouvre la page
Démarrage qui donne les conseils pour effectuer manuellement l’indication du site choisi comme
page de démarrage.
Astuce pratique
Je trouve plus commode de placer ces scripts dans une feuille externe qui est appelée dans toutes
les pages du site.
Voici le code mis pour cela dans le de chaque page :
<script language="JavaScript" type="text/javascript" src="/scripts.js"></script>
Et voilà le code de cette feuille externe :
< !- f u n c tio n Im p r im e ( ) {
if ( n a v ig a to r .a p p V e r s io n .in d e x O f ( " M a c " ,
a le r t( " C e tte f o n c tio n n \'e s t p a s r é a lis a b
}
e ls e {
w in d o w .p r in t( ) ;
}
}
f u n c tio n A jo u F a v o r ( ) {
if ( n a v ig a to r .a p p V e r s io n .in d e x O f ( " M a c " ,0
a le r t( " C e tte f o n c tio n n \'e s t p a s r é a lis a b
}
e ls e {
if ( ( n a v ig a to r .a p p N a m e .in d e x O f (
w in d o w .e x te r n a l.A d d
} e ls e {
a le r t( " C e tte f o n c tio n n
}
}
}
f u n c tio n D e m a r r a g e ( Pa g e ) {
if ( n a v ig a to r .a p p V e r s io n .in d e x O f ( " M a c " ,
w in d o w .o p e n ( 'h ttp ://w w w .c y e s .in f o /a
}
e ls e {
if ( d o c u m e n t.a ll & & d o c u m e n t.g e tEle m e n t
Pa g e .s ty le .b e h a v io r = 'u r l( # d e f a u lt# h o m e p
Pa g e .s e tH o m e Pa g e ( 'h ttp ://w w w .c y e s .in
}
e ls e {
w in d o w .o p e n ( 'h ttp ://w w w .c y e s .in f o /a id
}
}
}
/- - >
Ces scripts pourraient encore être améliorés, notamment en prenant en compte d’autres OS, si
quelqu’un a des suggestions, je suis intéressé.
[1] Ces scripts ont été mis au point pour le site cyes.info.
[2] Complément à l’article du 14/01/05, modifié le 16/06/06 (pour Opera 8) et le 21/06/06 (pour
Shiira) :
On croit par erreur quand on est habitué à Microsoft Internet Explorer que window.print() ne
fonctionne pas sur Mac. C’est une erreur, c’est essentiellement Explorer et Opera qui ne reconnaissent
pas cette fonction, elle peut être utilisée avec les autres navigateurs. Le code du script tenant compte de
tout cela devient :
<script language="JavaScript">
<!-NAV=navigator.appName.toLowerCase()
function Imprime() {
if ((navigator.appVersion.indexOf("Mac",0)>0) && ((NAV=="microsoft
internet explorer") || (NAV=="opera"))) {
alert("Cette fonction n\'est pas réalisable avec ce
navigateur.\n\nUtilisez plutôt la combinaison de touches \"Pomme+P\"");
}
else {
window.print();
return false;
}
}
//-->
</script>
Depuis la version 8 d’Opera la fonction Imprimer est reconnue, Shirra par contre ne la reconnait pas,
voici une modification de ce script pour en tenir compte :
<script language="JavaScript">
<!-var agt = navigator.userAgent.toLowerCase();
function Imprime() {
if ((navigator.appVersion.indexOf("Mac",0)>0) && ((agt.indexOf("internet
explorer",0)>=0) || (agt.indexOf("shiira",0)>=0) ||
((agt.indexOf("opera",0)>=0) && (parseInt(navigator.appVersion)<8)) )) {
alert("Cette fonction n\'est pas réalisable avec ce
navigateur.\n\nUtilisez plutôt la combinaison de touches \"Pomme+P\"");
}
else {
window.print();
return false;
}
}
//-->
</script>
Imprimer cet article
Copyright Médecins Maîtres-Toile francophones
Espace membres - Administration - Crédits