2009-10-08 3 views
10

Ho creato uno script Greasemonkey per un sito Web. Quello che fa lo script è aggiungere un div alla fine della pagina.
Come escludere iframe in Greasemonkey o Tampermonkey?

document.body.insertBefore(myDiv, document.body.firstChild); 

Ma ora il sito aggiunge un iframe per Google-ads, di conseguenza il mio div appare nella iframe troppo, che non è quello che voglio.

Come posso interrompere lo script che interessa gli iframe?

risposta

5

Greasemonkey ora supporta the @noframes directive (a lungo sostenuto da Tampermonkey e Scriptish).
Utilizzare quello per un modo più pulito per bloccare l'operazione negli iframe.


Purtroppo, npdoty's answer sarà ora scattare un allarme in consolle il browser di Firefox:

Attenzione: uso di ritorno al di fuori delle funzioni è deprecato e possono causare errori in future versioni di Greasemonkey.

+0

Questo avviso non è un problema, devi solo avvolgere il tuo script in una funzione anonima: '(function() {...})();', è comunque una buona pratica. Grazie per il '@ noframes', upvoted. – user

+1

Modificata la mia accettazione. Grazie per aver fornito un modo più elegante. – fwonce

+0

Prego; felice di aiutare. –

16

ho messo questo in cima miei script per evitare di incorrere in frame o iframe:

if (window.top != window.self) //don't run on frames or iframes 
    return; 
+0

Questo è tutto! GRAZIE :-) – fwonce