Notizie: se possiedi un dispositivo Android, prova Firefox per Android, un browser scattante e dinamico per navigare in ambiente mobile.

Autore Topic: [Developer] - Bookmarklet e lettura di prefs.js  (Letto 969 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Borgata

  • Post: 624
[Developer] - Bookmarklet e lettura di prefs.js
« il: 15 Aprile 2009 13:00:33 »
Ciao a tutti.
Spero di non aver sbagliato sezione del forum.

Mi serviva una mano per creare un bookmarklet che leggesse un url da una variabile creata da about:config e aprisse la pagina.

Tralasciando ora la questione dell'apertura della pagina, vorrei concentrarmi sulla lettura dell'url della variabili di FF.

Se la variabile è booleana, non ho problemi usando il codice (qui un esempio)
Codice: [Seleziona]
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
javascript:alert(prefs.getBoolPref("imagezoom.mmReset"));

Se invece si tratta di una stringa, ossia quello che mi serve, lo stesso codice non va
Codice: [Seleziona]
var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
javascript:alert(prefs.GetCharPref("browser.download.lastDir"));
E ricevo un errore per cui prefs.GetCharPref non è una funzione.

Ora, l'errore potrebbe essere anche banale, dato che non ho una conoscenza formale ma stavo solo facendo delle prove col codice nella speranza che funzionasse da subito, ma evidentemente...

Grazie in anticipo!
« Ultima modifica: 15 Aprile 2009 16:23:39 da gialloporpora »

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: Bookmarklet e lettura di prefs.js
« Risposta #1 il: 15 Aprile 2009 13:19:29 »
Avevo cercato proprio la scorsa settimana su MDC informazioni sulla lettura/scrittura delle preferenze di Firefox.
Mi serviva per tradurre le stringhe dei comandi di Ubiquity in italiano, diciamo che l'ho lasciata un po' da parte però questo codice funziona:

Codice: [Seleziona]
function getLocale( {
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
                    .getService(Components.interfaces.nsIPrefBranch);
return prefs.getCharPref("general.useragent.locale");
}

la preferenza letta è di tipo stringa. Però io ho dei seri dubbi che un bookmarklet abbia i permessi per leggere le preferenze via about:config.
Ciao

« Ultima modifica: 15 Aprile 2009 13:39:18 da gialloporpora »

Offline Borgata

  • Post: 624
Re: Bookmarklet e lettura di prefs.js
« Risposta #2 il: 15 Aprile 2009 16:08:02 »
Grazie per la risposta ;)
Confrontando con il tuo script ho trovato lo stupido errore!
Scrivevo la funzione getCharPref con l'iniziale maiuscola!  :roll:

Lo script funziona quindi, ma... pare non sia possibile eseguirlo come Bookmarklet

L'ultima versione provata è:
Codice: [Seleziona]
javascript:alert((Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch)).getCharPref("browser.download.lastDir"));

Qualche altro suggerimento?
Possibile che non ci sia modo di creare un segnalibro in base al contenuto di una variabile di firefox?
« Ultima modifica: 15 Aprile 2009 16:09:45 da Borgata »

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: [Developer] - Bookmarklet e lettura di prefs.js
« Risposta #3 il: 16 Aprile 2009 10:47:15 »
I bookmarklet hanno i medesimi privilegi della pagina web che è caricata nel momento in cui tu li attivi.
Come puoi immaginare, non sarebbe molto piacevole se un sito web potesse leggere le preferenze dell'utente e infatti per motivi di sicurezza questo non è possibile in alcun modo.
Ne consegue che non è possibile fare quello che intendi fare tu, per cose del genere ti conviene scrivere una piccola estensione.

Offline Borgata

  • Post: 624
Re: [Developer] - Bookmarklet e lettura di prefs.js
« Risposta #4 il: 16 Aprile 2009 12:50:15 »
Grazie ;)

Purtroppo con l'estensione avevo già tentato, ma senza successo, temo di non essere ancora in grado.
Magari attenderò che qualche anima buona colga il mio appello...  :mrgreen:

In realtà avevo sperato, tempo fa, che i bookmark fossero semplicemente in grado di interpretare le variabili locali o di FF, ma ovviamente era stata una vana speranza.

0 Utenti e 1 Visitatore stanno visualizzando questo topic.