Notizie: scarica ora l'ultima versione disponibile di Thunderbird!

Autore Topic: Analfabeta Javascript cerca aiuto  (Letto 3242 volte)

0 Utenti e 2 Visitatori stanno visualizzando questo topic.

Offline RNicoletto

  • Post: 2209
    • MondoWin
Analfabeta Javascript cerca aiuto
« il: 15 Marzo 2010 18:07:45 »
C'è qualcuno che può perdere 5 minuti per scrivere un bookmarklet o uno user script che faccia una ed una cosa sola: eliminare il
Codice: [Seleziona]
div id="viewer-details-toggle" da Google Reader?

Facendo una ricerca veloce ho trovato questo ma qui spiega come rimuovere un div connotata da un certo stile e non con un certo id.

Attenzione: a me interessa eliminare tale div, non nasconderlo.

Grazie a chiunque troverà il tempo di darci un'occhiata. :wink:

Offline A35G

  • Post: 642
    • HackWorld - La Rinascita del Sapere -
Re: Analfabeta Javascript cerca aiuto
« Risposta #1 il: 15 Marzo 2010 19:33:27 »
Ciao RNicoletto,
intendi una cosa del genere:

Codice: [Seleziona]
document.body.removeChild(document.getElementById("viewer-details-toggle"));
Hai una pagina di riferimento?

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #2 il: 15 Marzo 2010 21:27:26 »
La pagina di riferimento è Google Reader. :wink:

La soluzioni che ho trovato io sono queste:

SOLUZIONE 1
Codice: [Seleziona]
var deldiv = document.getElementById('viewer-details-toggle');
deldiv.parentNode.removeChild(deldiv);
che elimina il DIV in questione.

SOLUZIONE 2
Codice: [Seleziona]
var deldiv = document.getElementById('viewer-details-toggle');
deldiv.style.display = 'none';
che nasconde il DIV in questione.

La tua soluzione mi sembra però più semplice e diretta (però è solo un'impressione... dopotutto sono sempre un'analfabeta di JavaScript :razz:).

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Analfabeta Javascript cerca aiuto
« Risposta #3 il: 16 Marzo 2010 09:47:33 »
La soluzione esatta è la prima.
Se vuoi, puoi mettere tutto in una linea (senza a capo)

Codice: [Seleziona]
document.getElementById('viewer-details-toggle').parentNode.removeChild(document.getElementById('viewer-details-toggle'));
ma lo sostanza è la stessa.

Se vuoi fare un bookmarklet ed evitare errori, dovresti scrivere qualcosa del genere (tutto su una riga)

Codice: [Seleziona]
javascript:var d=document.getElementById('viewer-details-toggle');if(d) d.parentNode.removeChild(deldiv);void(0);
« Ultima modifica: 16 Marzo 2010 09:57:04 da klades »

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #4 il: 16 Marzo 2010 18:36:00 »
Grazie infinite per la consulenza. :wink:

Giusto per informazione, alla fine ho deciso di utilizzare un approccio completamento diverso per fare quello che avevo in mente all'inizio e cioè rendere più leggibile Google Reader. Anziché utilizzare uno script con Greasemonkey ho creato un CSS per Stylish; anziché eliminare gli elementi che non voglio vedere, li nascondo.

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #5 il: 26 Marzo 2010 17:19:23 »
Ri-uppo il thread per chiedere: esiste un modo, attraverso javascript o css, per spostare un elemento DIV?

In particolare io vorrei riuscire a spostare il tasto "Add a subscription" presente in Google News Reader per metterlo a fianco della funzione di ricerca.

Giusto per capirci, Google Reader adesso si presenta così:

Io vorrei si presentasse così:

Grazie! :wink:

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: Analfabeta Javascript cerca aiuto
« Risposta #6 il: 26 Marzo 2010 18:36:41 »
Prova con:
Codice: [Seleziona]
javascript:(function(){b=document.getElementById("lhn-add-subscription");b.parentNode.removeChild(b);bar=document.getElementById("search");bar.appendChild(b);})();

Ciao

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #7 il: 26 Marzo 2010 21:36:57 »
gialloporpora sei un fenomeno!

Ed allora ne approfitto :razz:: perché il pulsante mi risulta sfalsato di circa 1px rispetto agli altri? (vedi immagine qui sotto)


Grazie ancora!

Offline A35G

  • Post: 642
    • HackWorld - La Rinascita del Sapere -
Re: Analfabeta Javascript cerca aiuto
« Risposta #8 il: 27 Marzo 2010 10:06:08 »
Potrebbe essere fuori dal div che ha determinate caratteristiche di margin e padding oppure essere all'interno ma senza aver ereditato particolari impostazioni.

Questo potrebbe essere uno dei tanti motivi ;)

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: Analfabeta Javascript cerca aiuto
« Risposta #9 il: 27 Marzo 2010 11:45:00 »
Credo che la cosa migliore sarebbe mettere quel pulsante dopo il div di ricerca (e non appenderlo come ho fatto io), però avevo provato e così facendo a me veniva mostrato sotto e non affiancato (sicuramente per qualche attributo CSS), prova così:

Codice: [Seleziona]
javascript:(function(){b=document.getElementById("lhn-add-subscription");b.parentNode.removeChild(b);bar=document.getElementById("search");nuovo=bar.appendChild(b);nuovo.setAttribute("style","margin:0 0 0 0;padding: 0 0px 0 0px;");})();

dovrebbe funzionare, probabilmente si può fare meglio però.
Ciao
« Ultima modifica: 27 Marzo 2010 11:46:46 da gialloporpora »

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #10 il: 30 Marzo 2010 12:59:13 »
Con lo script di cui sopra il pulsante "Add a subscription" risulta agganciato al pulsante "Search". La cosa si risolve riproponendo le caratteristiche di margin e padding degli altri pulsanti.

Codice: [Seleziona]
javascript:(function(){b=document.getElementById("lhn-add-subscription");b.parentNode.removeChild(b);bar=document.getElementById("search");nuovo=bar.appendChild(b);nuovo.setAttribute("style","margin:0 1px;padding:0 0.461em;");})();
Grazie ancora! :)

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #11 il: 02 Aprile 2010 10:44:11 »
Sono ancora qui... :oops:

Altro problema su cui sto sbattendo la testa senza successo è quello di modificare lo stile di una classe all'interno di una pagina.

Mi spiego meglio: in Google Reader esiste la classe entry-body che va a settare max-width:650px;. Io vorrei semplicemente eliminare tale setting.

Fatto con i fogli di stile (tramite UserStyle) è un sciocchezza:

Codice: [Seleziona]
/* make entry content use full screen width */
#entries .entry-body, {
max-width: none !important;

Fare la stessa cosa via javascript sembra un'impresa impossibile. :x

Ho visto che Firefox, dalla versione 3 in su, mette a disposizione la funzione document.getElementsByClassName ma tutti i miei tentativi di usarla si sono rivelati fallimentari. :(

Utilizzando il seguente codice:
Codice: [Seleziona]
var elems = document.getElementsByClassName("entry-body");
elems[0].style.maxWidth ='none';
ottengo come risposta dalla Console del browser "Error: elems[0] is undefined".

Qualcuno ha idea del perché? :?:

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #12 il: 02 Aprile 2010 11:08:03 »
AGGIORNAMENTO!

Ho fatto un piccolo passo in avanti. Ho visto che getElementsByClassName restituisce un array di valori e quindi non posso applicare direttamente il nuovo style sull'array. Utilizzando la funzione qui sotto ho risolto il problema del "Error: elems[0] is undefined".
Codice: [Seleziona]
var elems = document.getElementsByClassName("entry-body");
for ( i=0;i<elems.length;i++ ) {
elems.style.maxWidth = 'none';
}
Peccato che tale funzione... non sortisca alcun effetto! :?

Agli elementi appartenenti alla classe entry-body non succede nulla. Stessa cosa se utilizzo la sintassi
Codice: [Seleziona]
elems[i].style.maxWidth = 'none';
:?:

Offline gialloporpora

  • サンドロ
  • Moderatore
  • Post: 10806
    • Il blog che non c'è
Re: Analfabeta Javascript cerca aiuto
« Risposta #13 il: 02 Aprile 2010 11:18:47 »
Prova con:

Codice: [Seleziona]
elem.setAttribute("style", "max-width: none;");

Ciao

Offline RNicoletto

  • Post: 2209
    • MondoWin
Re: Analfabeta Javascript cerca aiuto
« Risposta #14 il: 02 Aprile 2010 11:42:05 »
Provato, nessun cambiamento. :(

0 Utenti e 2 Visitatori stanno visualizzando questo topic.