2010-04-08 4 views
12

Voglio creare uno script di tipo greasemonkey per firefox eseguito prima degli script nella pagina. Gli script di Greasemonkey vengono eseguiti dopo gli script nella pagina, pertanto non funzioneranno. Il motivo per cui ho bisogno di questo è perché voglio modificare uno degli script sulla pagina. Nello specifico, voglio eliminare uno script che forza il caricamento della pagina all'interno di un frame poiché la pagina all'interno di un frame interrompe F5 (premendo F5 la pagina torna alla prima pagina invece di ricaricare la pagina corrente). Inoltre, non voglio caricare la pagina attraverso un proxy con AJAX e passare a chrome/opera non è neanche un'opzione. Stavo pensando che forse l'add-on Jetpack avrebbe funzionato, ma sembra che abbia lo stesso evento che greasemonkey usa, DOMContentLoaded. Qualche idea?Come posso eseguire uno script utente prima che gli script inline vengano eseguiti su una pagina Web?

+0

** SE ** Opera era un'opzione, che avresti potuto semplicemente rinominato il tuo file * * .user.js' in '* .js' e sarebbe stato eseguito prima che qualsiasi contenuto iniziasse a caricare. – c69

+0

Lo so, ma non uso Opera come browser. Dal momento che ho personalizzato firefox, il passaggio e il mantenimento di tutto ciò che voglio sarebbe probabilmente impossibile. Installare e utilizzare un altro browser per un solo sito sembra un po 'sciocco. – Telanor

risposta

6

[modifica 2013] Utilizzare il modulo page-mod dell'SDK dell'adattatore con contentScriptWhen = start.


più vecchio: Destra, solo più recente di Firefox build (attualmente possono essere successivamente aggiunti 3,7 nighlies, a 3.6.x) avere il supporto per l'esecuzione di script personalizzati prima dell'esecuzione degli script contenuti specificati. I wrote a prototype Jetpack-SDK module per sfruttare la nuova notifica.

È uno script o uno script inline? Nel primo caso può essere bloccato con una politica di contenuto (qualcosa simile ad un blocco).

+0

Interessante. Vedrò se riesco a capire come farlo funzionare. Lo script è uno script in linea. – Telanor

+0

Potresti aggiungere un riferimento ad un esempio per fare ciò che @Telanor sta chiedendo? –

+0

@jaime: modificato la risposta per puntare al modulo mod di pagina. – Nickolay