2010-03-03 12 views
1

J'ai cherché autour, mais je ne peux trouver aucune information à ce sujet; Peut-être que je n'utilise pas les meilleurs termes de recherche. Un bookmarklet JavaScript - c'est-à-dire un lien qui utilise le pseudo-protocole «javascript:» qui peut être déplacé dans la barre d'adresse d'un navigateur et ouvert sur n'importe quelle page - doit-il être une URL valide? J'ai entendu dire que oui, mais j'aimerais trouver une réponse définitive.Est-ce un bookmarklet JavaScript doivent être une URL valide?

Google Reader a une "note dans Reader" bookmarklet qui utilise le code JavaScript suivant:

javascript:var%20b=document.body;var%20GR________bookmarklet_domain='http://www.google.com';if(b&&!document.xmlVersion){void(z=document.createElement('script'));void(z.src='http://www.google.com/reader/ui/link-bookmarklet.js');void(b.appendChild(z));}else{} 

Les espaces codés (% 20) semblent être un effort d'adhérer à une URL valide, mais sont les accolades et points-virgules, par exemple, des caractères d'URL valides?

Si la réponse est oui, est-il une fonction JavaScript ou un utilitaire en ligne que je peux utiliser pour faire mon bookmarklet une URL valide en une seule étape? JavaScript a encodeURI, mais aussi encoder entre parenthèses, accolades, etc.

Répondre

0

J'ai fait quelques bookmarklets et je ne me souviens pas de les coder comme ça. Donc je suppose n'est pas nécessaire (mais peut-être nécessaire pour certains navigateurs, comme IE)

+0

Merci, Ionut. J'ai aussi remarqué que Bookmarklets non encodées travaillé (au moins dans les navigateurs que j'ai vérifié, comme FF/3.6 & Saf/4), mais de savoir comment les navigateurs font le meilleur de mauvais code, je me suis dit qu'il était encore une bonne idée de suivre la règles, si possible. – Bungle