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

Autore Topic: vimperator+javascript+readability  (Letto 1260 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline DerAngEd_HeRmiT

  • Post: 191
vimperator+javascript+readability
« il: 16 Giugno 2010 19:04:10 »
Buondì a tutti,
   vimperator permette di lanciare script esterni (link); la mia idea di mettere su file lo script di readability come è già stato fatto per greasemonkey.

Questo è quello che ho copia-incollato:
Codice: [Seleziona]
function Readability()
{
readConvertLinksToFootnotes=true;
readStyle='style-apertura';
readSize='size-small';
readMargin='margin-narrow';
_readability_script=document.createElement('SCRIPT');
_readability_script.type='text/javascript';
_readability_script.src='http://lab.arc90.com/experiments/readability/js/readability.js?x='+(Math.random());
document.getElementsByTagName('head')[0].appendChild(_readability_script);
_readability_css=document.createElement('LINK');_readability_css.rel='stylesheet';
_readability_css.href='http://lab.arc90.com/experiments/readability/css/readability.css';
_readability_css.type='text/css';
_readability_css.media='all';
document.getElementsByTagName('head')[0].appendChild(_readability_css);
_readability_print_css=document.createElement('LINK');
_readability_print_css.rel='stylesheet';
_readability_print_css.href='http://lab.arc90.com/experiments/readability/css/readability-print.css';
_readability_print_css.media='print';
_readability_print_css.type='text/css';
document.getElementsByTagName('head')[0].appendChild(_readability_print_css);
}


Tuttavia quando provo a dare

:source /tmp/prova.js

non capita niente.

Qualcuno può dirmi se ciò che ho scritto è corretto?

grazie

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: vimperator+javascript+readability
« Risposta #1 il: 16 Giugno 2010 20:03:56 »
Non conosco quei componenti aggiuntivi, però come prima cosa ti consiglio di mettere tutto tra try e catch, così ti rendi conto di eventuali errori, che potrebbero anche sfuggire dalla Console di Firefox

Offline DerAngEd_HeRmiT

  • Post: 191
Re: vimperator+javascript+readability
« Risposta #2 il: 16 Giugno 2010 20:47:25 »
Non conosco quei componenti aggiuntivi, però come prima cosa ti consiglio di mettere tutto tra try e catch, così ti rendi conto di eventuali errori, che potrebbero anche sfuggire dalla Console di Firefox

grazie per il consiglio, tuttavia posso chiederti esattamente cosa fare in quanto il js non lo conosco.

rigrazie

Offline DerAngEd_HeRmiT

  • Post: 191
Re: vimperator+javascript+readability
« Risposta #3 il: 17 Giugno 2010 00:03:06 »
Mi scuso se non è il posto giusto per discutere di js, tuttavia essendo una funzionalità che può essere richiamata da vimperator penso che possa centrare qualcosa con la sezione.

Comunque; forse ho fatto un passettino in avanti.

Ho "riscritto"  :D:
Codice: [Seleziona]
javascript:(function(){
readConvertLinksToFootnotes=false;
readStyle='style-apertura';
readSize='size-medium';
readMargin='margin-narrow';
_readability_script=document.createElement('SCRIPT');
_readability_script.type='text/javascript';
_readability_script.src='http://lab.arc90.com/experiments/readability/js/readability.js?x='+(Math.random());
document.getElementsByTagName('head')[0].appendChild(_readability_script);
_readability_css=document.createElement('LINK');
_readability_css.rel='stylesheet';
_readability_css.href='http://lab.arc90.com/experiments/readability/css/readability.css';
_readability_css.type='text/css';
_readability_css.media='all';
document.getElementsByTagName('head')[0].appendChild(_readability_css);
_readability_print_css=document.createElement('LINK');
_readability_print_css.rel='stylesheet';
_readability_print_css.href='http://lab.arc90.com/experiments/readability/css/readability-print.css';
_readability_print_css.media='print';
_readability_print_css.type='text/css';
document.getElementsByTagName('head')[0].appendChild(_readability_print_css);
})();

adesso richiamandolo con
:source /tmp/test.js

mi restituisce un errore
Citazione
Sourcing file: /tmp/test.js:9: TypeError: document.getElementsByTagName("head")[0] is undefined

che serve per fare questo
http://www.webdeveloper.com/forum/showthread.php?t=153279

qualcuno sa come correggere?

grazie

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: vimperator+javascript+readability
« Risposta #4 il: 17 Giugno 2010 09:54:28 »
L'errore significa che non esiste nessun elemento HEAD nell'oggetto "document".

Da quello che vedo, "Readibility" è in sostanza un bookmarklet e quindi nel suo codice, "document" corrisponde alla pagina web che è caricata.

Evidentemente nell'uso che ne fai tu, chiamandolo come script esterno, "document" corrisponde a qualcos'altro.

Non posso essere più preciso perché non conosco vimperator.
Se sostituisci "document" con "window.content.document" che succede?

Offline DerAngEd_HeRmiT

  • Post: 191
Re: vimperator+javascript+readability
« Risposta #5 il: 17 Giugno 2010 13:08:36 »
L'errore significa che non esiste nessun elemento HEAD nell'oggetto "document".

Da quello che vedo, "Readibility" è in sostanza un bookmarklet e quindi nel suo codice, "document" corrisponde alla pagina web che è caricata.

Evidentemente nell'uso che ne fai tu, chiamandolo come script esterno, "document" corrisponde a qualcos'altro.

Non posso essere più preciso perché non conosco vimperator.
Se sostituisci "document" con "window.content.document" che succede?

nulla, nessun errore e nessun cambiamento nella pagina.

Tuttavia ho fatto un po di tentativi:
1) ho provato a mappare il bookmarklet
:map w :open javascript:(blablablabla) <CR>

Soluzione funzionante ma non "comoda" in quanto dalla pressione del tasto w passano 6 secondi prima che il prompt venga riempito con il lungo JS e venga premuto il <CR>.

2) ho provato a parlarne nel canale irc, tuttavia, causa il mio scarso inglese e la totale ignoranza su JS, non ho concluso niente
Riporto la conversazione, magari qualcuno ha un illuminazione :-)

Citazione
<me> Hi
<me> I have a problem with "Readability" http://lab.arc90.com/experiments/readability/
<me> when I launch this command: http://tinypaste.com/e180f
<me> it works
<me> but when I tried to put the javascript in a file (test.js)
<me> http://tinypaste.com/e4c859
<me> and launch :source test.js
<me> it didn't works
<me> someone have a suggestions?
<me> thanks
<dneb> me: executes here, no console errs
<dneb> just an error from readability about not being able the particular page
<dneb> oh, didnt try :source though
* DiRaven è uscito (Quit: Lost terminal)
<dneb> me: sourced JS executes in vimperator scope, i think you can use content.window
<dneb> man i love vimperator
<dneb> :)
<me> I replaced "window.content." with "content.window.", but it still didn't works :-(
<dneb> me: the script works, its just the scope
<dneb> errors?
<dneb> wrap it in a function and pass the window as argument? (function(window){..})(myWindowRef)
<dneb> where i think myWindowRef = this.content.window
<dneb> (in vimperator scope.. liberator prolly?)
<dneb> or look at one of the plugins, gotta be somewhere to get an idea
<dneb> http://vimperator.kurinton.net/plugins/

grazie

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: vimperator+javascript+readability
« Risposta #6 il: 18 Giugno 2010 09:49:16 »
La conversazione su IRC non mi sembra molto illuminante.
Fai una prova: metti all'inizio del tuo codice, prima di readConvertLinksToFootnotes=false; questa riga

Codice: [Seleziona]
alert(document.location.href);

Eseguendo lo script, dovrebbe uscirti un avviso con un percorso, copialo e riportalo qui.

Offline DerAngEd_HeRmiT

  • Post: 191
Re: vimperator+javascript+readability
« Risposta #7 il: 18 Giugno 2010 11:10:54 »
La conversazione su IRC non mi sembra molto illuminante.
Fai una prova: metti all'inizio del tuo codice, prima di readConvertLinksToFootnotes=false; questa riga

Codice: [Seleziona]
alert(document.location.href);

Eseguendo lo script, dovrebbe uscirti un avviso con un percorso, copialo e riportalo qui.


Codice: [Seleziona]
chrome://browser/content/browser.xul

grazie per la tua disponibilità

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: vimperator+javascript+readability
« Risposta #8 il: 18 Giugno 2010 11:47:28 »
Prova questo, in caso non vada ti verrà fuori un avviso con il tipo di errore occorso

Codice: [Seleziona]
function Readability()
{
   try {
readConvertLinksToFootnotes=true;
readStyle='style-apertura';
readSize='size-small';
readMargin='margin-narrow';
_readability_script=window.content.document.createElement('SCRIPT');
_readability_script.type='text/javascript';
_readability_script.src='http://lab.arc90.com/experiments/readability/js/readability.js?x='+(Math.random());
window.content.document.getElementsByTagName('head')[0].appendChild(_readability_script);
_readability_css=window.content.document.createElement('LINK');_readability_css.rel='stylesheet';
_readability_css.href='http://lab.arc90.com/experiments/readability/css/readability.css';
_readability_css.type='text/css';
_readability_css.media='all';
window.content.document.getElementsByTagName('head')[0].appendChild(_readability_css);
_readability_print_css=window.content.document.createElement('LINK');
_readability_print_css.rel='stylesheet';
_readability_print_css.href='http://lab.arc90.com/experiments/readability/css/readability-print.css';
_readability_print_css.media='print';
_readability_print_css.type='text/css';
window.content.document.getElementsByTagName('head')[0].appendChild(_readability_print_css);
    }
    catch(e) {
      alert(e);
    }
}

Offline DerAngEd_HeRmiT

  • Post: 191
Re: vimperator+javascript+readability
« Risposta #9 il: 18 Giugno 2010 21:32:14 »
qualcosa si muove :D:
Qualcosa adesso viene visualizzato, probabilmente era colpa del fatto che tutti i document dovevano diventare window.content.document.
Precedentemente mi ero dimenticato dei:
Codice: [Seleziona]
_readability_script=document.createElement('SCRIPT');
Codice: [Seleziona]
_readability_script=window.content.document.createElement('SCRIPT');
Tuttavia non visualizza il corpo della pagina, cioè quello che realmente interessa.

grazie ancora

p.s.
per chi usa noscript: ricordarsi di autorizzare arc90 e la pagina corrente, altrimenti non funziona.

Offline DerAngEd_HeRmiT

  • Post: 191
Re: vimperator+javascript+readability
« Risposta #10 il: 18 Giugno 2010 21:59:59 »
Soluzione parziale.

Ho trovato il seguente plugin per vimperator:
http://vimperator.kurinton.net/plugins/gmperator.html

quindi installando l'estensione per greasemonkey linkata nel primo post posso dare:
:gmcommand Readability

e tutto funziona (ovviamente valgono le regole sopra per noscript), o quasi.
Questo e un blog che anche se ho permesso tutto con noscript non riesco a "readabilitaro"  :?
http://www.botchco.com/agd5f/?p=50

grazie

0 Utenti e 1 Visitatore stanno visualizzando questo topic.