Black and White Rainbow Published on March 29, 2009
by Black and White Rainbow

Black and White Rainbow's blog

Browse posts
Musicalités
Posted on September 3rd, 2009
Oldy old web...
Posted on July 25, 2009
Mad
Posted on July 18, 2009
1 comment (latest 8 weeks ago)
Une question de point de vue
Posted on June 11, 2009
Get a smarter-er browser...
Les palindromes...
Posted on March 18, 2009
Command-fu, let's get geeky...
Posted on March 12, 2009
The big scary Google
Posted on February 27, 2009
Some music...
Posted on February 20, 2009

Keyword tags

firefox
browser
smart bookmark
JavaScript

More information

This post is public
Attribution + non Commercial + no Derivs
  1. Read 258 times

Get a smarter-er browser...

Sunday March 29, 2009 at 09:32AM

Dans un millet précédent, j'avais parler des smart bookmarks. Ces petits marques pages spéciaux permettent d'étendre les fonctionnalité de votre Awsome bar. Il existe une technique un peu plus avancée que Lifehacker a abordé dans un post récent. Il faut parler couramment le JavaScript (aka JS) pour l'inventer, mais on peut le comprendre et l'imiter très facilement.

Rappel
Dans la première version des smart bookmarks on aurait écrit :
www.exalead.fr/searchresults?q=%s&x=0&y=0&%24mode=allweb&%24searchlanguages=fr
en y associant un mot clef :
exa
et, pour l'invoquer, on aurait écrit :
exa whatever
pour rechercher "whatever" sur exalead. Le résultat que l'on aurait obtenu serait :
La recherche de whatever sur Exalead.

Le défaut
L'inconvénient évident de cette méthode est que si l'on entre dans la barre de recherche le mot clef seul :
exa
on obtient la page :
La recherche de %s sur Exalead !
ce qui ne sert à rien (sauf sur urban dictionnary où il existe une entrée %s).

L'amélioration
En utilisant un chouilla de JavaScript et un soupçon d'astuce, on écrira :
javascript:if('%s') location.href='www.exalead.fr/search/results?q=%s&x=0&y=0&%24mode=allweb&%24searchlanguages=fr';else location.href='www.exalead.fr';
Décodons donc...

javascript: indique au navigateur qu'il doit exécuter du code JavaScript (et oui, la programmation c'est parfois aussi compliqué que ça !) au lieu de charger une adresse internet.

if(<expression>) <expression1>;else <expression2> est une forme générique en JavaScript qui signifie que dans le cas où expression ne s'évalue pas en "faux" on choisi l'expression1, dans l'autre cas, l'expression2.

'%s' peut prendre deux valeur. Dans le cas où le mot clef utilisé seul, il prend la valeur "null" (non défini) qui est équivalent à "faux" (JavaScript est un langage de script très (trop à mon gout) souple et laxiste). Dans le cas où le mot clef est utilisé accompagné d'une chaine de caractère (une suite de lettres, de chiffres et d'autres symboles typographiques), il prend cette chaine comme valeur et est alors considéré comme "pas faux".

En résumé, pour adapter un smart bookmark il suffit de

  1. remplacer URL_DE_LANCIEN_SMART_BOOKMARK par l'url de l'ancien smart bookmark
  2. remplacer URL_CLASSIQUE par l'url classique du site (sans toucher aux symboles ' qui les entourent)
  3. dans l'expression générique javascript:if('%s')location.href='URL_DE_LANCIEN_SMART_BOOKMARK';else location.href='URL_CLASSIQUE';
  4. Puis de placer le résultat de cette substitution dans le champ adresse du marque page intelligent, qui devient alors un marque page super intelligent !


Aller plus loin
Il est possible d'écrire des smart bookmarks qui prennent plusieurs arguments ou qui réagissent différemment selon l'argument utilisé... Il faut juste savoir écrire du JavaScript. On peut trouver quelques exemples sur un autre post de lifehacker. Je ne pense pas me mettre sérieusement à JS avant un bout de temps, mais je regarderais peut-être les bases pour écrire quelques hacks, commandes Ubiquity et script uCjs...

translate into English

Add your comment

Reply to this comment

Edit your comment

Please sign in to post a comment Sign in now?


rss Latest comments – Subscribe to the feed of comments related to this post.

 

Català | Čeština nové | 中文 | Deutsch | English | Español | Esperanto | Ελληνικά | Français | Galego | Italiano | Nederlands | Português | More...