Bookmarklet

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un bookmarklet este un mic program JavaScript care poate fi stocat ca o adresă URL normală în marcaje ( marcaje în engleză) în cele mai populare browsere web sau în hyperlinkurile unei pagini web. Bookmarklet-urile se mai numesc favlets sau favelets datorită faptului că Internet Explorer folosește termenul „Favorite” („favorite” în italiană) pentru a indica marcajele.

Scopul marcajelor este de a putea oferi utilizatorilor o metodă practică și imediată pentru a efectua o anumită operație (de exemplu, utilizați un serviciu web sau efectuați o operație specifică pe pagina pe care o vizitați); operațiunea efectuată este în mod normal legată de site-ul care lansează bookmarklet-ul și este o simplă comandă rapidă pentru a utiliza serviciile web oferite de site-ul care a dezvoltat bookmarklet-ul.

Concepte

Browserul utilizează URI-uri pentru marcaje și atributul href al unei etichete <A> . Prima parte a URI-ului ( http: :, file: sau ftp: specifică tipul de serviciu și formularul pentru restul șirului. Cu toate acestea, browserele implementează un prefix javascript: care pentru analizor este la fel ca orice alt URI. Intern browserul identifică protocolul JavaScript și, în loc să folosească restul șirului pentru a prelua pagina de încărcat, execută șirul ca program și folosește șirul rezultat ca o pagină nouă pentru a se deschide.

Scriptul executat are acces la pagină și îl poate citi și modifica. Dacă operațiunea returnează mai degrabă un tip nedefinit decât un șir, nu se încarcă nicio pagină nouă și singurul efect este să rulați codul pe pagină.

Exemple

Atunci când este folosit ca destinație a unui marcaj, următorul șir (returnările de căruță au fost adăugate pentru a ușura citirea) caută pe acesta.wikipedia.org textul selectat în browser sau, dacă nu este selectat nimic, va afișa o mască unde să inserați un text pentru a căuta. Acest bookmarklet funcționează în Firefox și Konqueror :

 javascript : ( function () {
 q = document . getSelection ();
 if ( ! q ) q = prompt ( 'Wikipedia:' );
 dacă ( q ) locație . href = 'http://it.wikipedia.org/w/wiki.phtml?search=' + escape ( q );
 }) ()

Această versiune funcționează pe browserul Safari :

 javascript : nul (
 q = prompt ( 'Wikipedia:' , getSelection ()));
 if ( q ) void ( locație . href = 'http://it.wikipedia.org/w/wiki.phtml?search=' + escape ( q ))

Această versiune funcționează pe Windows Internet Explorer :

 javascript : ( function () {
 q = document . selecție . createRange (). text ;
 if ( ! q ) q = prompt ( 'Wikipedia:' , '' );
 dacă ( q ) locație . href = 'http://it.wikipedia.org/w/wiki.phtml?search=' + escape ( q );}) ()

Următorul exemplu ilustrează o schimbare radicală a aspectului acestei pagini și funcționează prin adăugarea unei foi de stil integrate care setează marja dreaptă la 45%:

 javascript : ( function () {
 var newSS , styles = 'body {margin-left: 0%; marginea-dreapta: 45%;} ' ;
 if ( document . createStyleSheet ) {
   document . createStyleSheet ( % 22 javascript : '% 22 + stiluri +% 22' % 22 ); 
   } altceva {
   newSS = document . createElement ( „link” ); 
   newSS . rel = 'foaie de stil' ;  
   newSS . href = 'date: text / css,' + escape ( stiluri );
   document . getElementsByTagName ( % 22 head % 22 ) [ 0 ]. appendChild ( newSS ); 
   } 
 }
) ()

Următorul exemplu ia toate imaginile de pe pagina curentă și le mută în jurul paginii:

 javascript :
 R = 0 ; 
 x1 = .1 ; y1 = .05 ; x2 = .25 ; y2 = .24 ; x3 = 1,6 ; 
 y3 = .24 ; x4 = 300 ; y4 = 200 ; x5 = 300 ; y5 = 200 ;
 DI = document . imagini ; 
 DIL = DI . lungime ; 
 funcția A () {
   pentru ( i = 0 ; i - DIL ; i ++ ) {
      DIS = DI [ i ]. stil ;
      DIS . position = 'absolut' ; 
      DIS . stânga = Math . sin ( R * x1 + i * x2 + x3 ) * x4 + x5 ;
      DIS . sus = Math . cos (R * y1 + i * y2 + y3) * y4 + y5
      }
   R ++
   }
 setInterval ( 'A ()' , 5 );
 nul ( 0 );

Istorie

Termenul bookmarklet a fost inventat de Steve Kangas de la www.bookmarklets.com, care a început să le creeze dintr-o idee sugerată în Ghidul JavaScript al Netscape Communications Corporation . Termenul favelet a fost folosit de Tantek Çelik într-un e-mail personal din 6 septembrie 2001 . Brendan Eich , unul dintre dezvoltatorii JavaScript de la Netscape, a dat această definiție a invenției sale de adrese URL javascript: ::

„A fost o caracteristică deliberată în acest sens: am inventat URL-ul javascript: împreună cu JavaScript, în 1995 , și am conceput ca adresele URL javascript: să poată fi folosite ca orice alt tip de URL, inclusiv să fie stocate ca marcaje.

În special, am făcut posibilă generarea unui nou document încărcând, de exemplu, javascript:'hello, world' dar și (cheia pentru marcaje) pentru a executa scripturi arbitrare în DOM- ul documentului curent, de exemplu javascript:alert(document.links[0].href) . Diferența este că ultimul tip de adresă URL utilizează o expresie care este evaluată la un tip nedefinit în JS. Am adăugat operatorul void în JS înainte ca Netscape 2 să fie publicat pentru a face mai ușoară aruncarea valorilor nedefinite într-o adresă URL javascript: »

( Brendan Eich )