AJOUT AUX FAVORIS MULTI-NAVIGATEUR

Messages postés
286
Date d'inscription
jeudi 29 juillet 2004
Statut
Membre
Dernière intervention
27 juin 2006
- - Dernière réponse : freenat94
Messages postés
2
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
10 janvier 2006
- 10 janv. 2006 à 02:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33244-ajout-aux-favoris-multi-navigateur

Afficher la suite 
freenat94
Messages postés
2
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
10 janvier 2006
-
Moi je dis BRAVO ! Si vous saviez le nombre de script incomplet, erroné que l'on trouve ca fait plaisirde voir un script simple et clair. meme si c'est pour une fonction courante comme celle ci. Ce script et un autre me permette de ne pas importuner l'utilisateur avec une boite de dialogue "voulez vous ajouter blablablabla...".

Alors merci...
Joss7fr
Messages postés
4
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
17 août 2005
-
Hé hé :D, allé je rajoute une remarque de plus sur ce code.

Mon problème est que j'en ai assai de voire des window.external.addFovirite pour une majorité des liens du type "Ajouter à vos favoris", alors qu'il existe au moins un equivalent pour les autres navigateurs, entre autre pour la famille Mozilla.
Comme ce script est simple et court, il est donc parfaitement modifiable aux besoins. C'est pour ça que je me suis permis de rajouter les raccourcis claviers, qui personnellement m'intéressaient, sans que ceci brouille la compréhension du script ; à vous de les supprimer.
Si l'agencement du code ne vous convient pas, à vous de l'adapter, ça simplicité le permet.
Si on ne veux garder que les ajouts automatiques pour les navigateurs on peut toujours garder seulement ceux là :


if (window.external) {
/* Internet Explorer 4+, et ses dérivés (Crazy Browser, Avent Browser ...) */
window.external.AddFavorite(siteURL,siteNOM);
}
else if (window.sidebar) {
/*Netscape 6+ ; Mozilla, FireFox et compagnie (K-Meleon ...) */
window.sidebar.addPanel(siteNOM,siteURL,"");
}


Ou alors même :

if (window.external) {
/* Internet Explorer 4+, et ses dérivés (Crazy Browser, Avent Browser ...) */
print ("Ajouter à vos Favoris");
}
else if (window.sidebar) {
/*Netscape 6+ ; Mozilla, FireFox et compagnie (K-Meleon ...) */
print ("Ajouter à vos Favoris");
window.sidebar.addPanel(siteNOM,siteURL,"");
}


Je ne propose pas un ajout UNIVERSEL, mais MULTI, où c'est vrai il faudrait plutôt dire BI-FAMILLE. Et je ne pense pas me tromper de trop en disant que le marcher des navigateurs est partagé entre la famille IE et celle de Mozilla principalement, donc le script concerne sûrement une bonne partie des utilisateurs. Et à ma connaissance l'ajout automatique n'est disponible que pour ceux-là.
Le test dans les fonctions permet de prendre en compte plus de butineurs concernés que le fameux indexOf ; il évite de rajouter du code pour reconnaitre un navigateur en ajoutant une partie de son identifiant dans les tests, ou alors de confondre un navigateur qui a changé cette chaine.
Donc pour la polyvalence c'est le mieux que je puisse proposer (ça n'exclus pas qui ne l'ai peut etre pas).

Et en completant ce script par du superflus, on peut voir quelles sont les fonctions pour reconnaitre certains navigateurs, surtout Opera pour ma part.

(Pour le troisement point je suppose que c'est annulé, j'ai testé et approuvé pour les navigateurs cités en commentaire ; j'avoue que les '...' suppose que c'est la même chose pour les autres)
cs_darkman2
Messages postés
121
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005
-
meme remarque que Zart
Joss7fr
Messages postés
4
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
17 août 2005
-
1)
En fait mon idée est de placer la fonction dans un lien, et je n'aime pas vraiment qu'il ne se passe rien quand je clique sur un lien.
Donc à défault j'indique les racourcis clavier que l'utilisateur ne connais pas forcement ; et j'ai pour habitude de croire que s'il y a assimilation des raccourcis claviers on les utilise plutot que les liens du type "ajouter ce site à vos favoris".
On peut supposer que c'est un rappel utile. Et par la suite le visiteur poura effectuer ce-dit raccourcis, plutôt que d'aller promener sa souris dans les menus.
(Si tu veux ajouter une boite de dialogue, si tu aimes les boites de dialogues, disant "Aller dans menu ...", c'est possible aussi ;) ).

2)
Une liste exhaustive non, bien entendu.
Mais une liste qui regroupe les navigateurs courants oui, et qui les reconnait ça me va.
Je prefere ça au "window.external.AddFavorite(siteURL,siteNOM)" exclusivité IE (il me semble bien) que l'on retrouve trops frequemment.
Le souhait est que si "window.external==TRUE" alors "window.external.AddFavorite(siteURL,siteNOM)" soit utilisable, mais on le voit avec Konqueror ce n'est pas le cas. Si c'était le cas ce serait l'idéal, ce n'est pas l'identification du navigateur qui est privilégiée mais de savoir si telle action est faisable ; d'où on perdrait le besoin de liste exaustive (du moins elle le deviendrait automatiquement).
Le nouveau navigateur sera alors dans la catégorie non reconnue.
Et tout ne sera pas toujours réinventé, certaines fonctions se retrouverons surement.
Mais il est simple de rajouter une ligne pour lui, et qui sais cette ligne servira pour d'autres navigateurs (voir la suite ...). Et le retouche de se code ne doit pas vraiment poser de problème ... du moins pour le moment.
J'avais testé le script sous Netscape 4.7 à 8, Opera 2 à 8, IE 3(inutile n'a pas de JS) à 6, les Mozillas (meme pheonix), et Konqueror. Et aucun problème à signaler. Je ferais surrement d'autres tests sur les moins utilisés, mais c'est une plage de navigateurs qui me convient, les principaux sont là.

3)
Ce n'est pas le navigateur qui doit en fait être detecté, mais les possibilités de son implementation javascript. Mozilla (firefox etc...) repond à "window.sidebar" et execute "window.sidebar.addPanel(siteNOM,siteURL,"")", c'est une erreure de ma part de ne pas l'avoir indiqué. Mais Netscape et Mozilla (firefox, etc ...) sont liés dans leur construction.
Pour CrazyBrowser je n'ai pas testé pour lui, je l'ai oublié. Mais il me semblait que c'est basé sur IE, j'irrais voir ça. C'est comme les sur-couches de IE, elles reponderont au premier test.

Enfin, si des choses vous semble inutiles, l'adaptation est toujours autorisée :D
jfperras
Messages postés
70
Date d'inscription
vendredi 13 septembre 2002
Statut
Membre
Dernière intervention
6 mai 2009
-
meme chose que Zart... pas assez polyvalent