AJOUT AUX FAVORIS MULTI-NAVIGATEUR

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 15 août 2005 à 17:50
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

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
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
17 août 2005 à 14:52
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
17 août 2005 à 09:42
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
15 août 2005 à 19:22
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 69 Date d'inscription vendredi 13 septembre 2002 Statut Membre Dernière intervention 6 mai 2009
15 août 2005 à 19:21
meme chose que Zart... pas assez polyvalent
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
15 août 2005 à 17:50
1.
Je vois pas pourquoi il faudrait signaler à l'utilisateur comment ajouter un lien à ces favoris.
2.
Tu ne peux pas faire de liste exhaustive de tous les navigateurs... C'est impossible. Demain un nouveau navigateur va sortir et tu devras retoucher à ton code... A mon avis ça n'est pas viable.
3.
Tu ne tiens pas compte ni de Mozilla FireFox ni de CrazyBowser, ça veut bien dire qu'il est impossible de référencer tous les navigateurs !!!
Rejoignez-nous