2009-10-08 10 views
10

He creado un script de Greasemonkey para un sitio web. Lo que hace el script es agregar un div al final de la página.
Cómo excluir iframe en Greasemonkey o Tampermonkey?

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

Pero ahora el sitio agrega un iframe para google-anuncios, como resultado de mi div aparece en el iframe también, que no es lo que quiero.

¿Cómo puedo evitar que el script afecte iframes?

Respuesta

5

Greasemonkey ahora es compatible con the @noframes directive (siempre con el apoyo de Tampermonkey y Scriptish).
Utilícelo para una forma más limpia de bloquear el funcionamiento en iframes.


Desafortunadamente, npdoty's answer ahora se activará una advertencia en la consola del navegador de Firefox:

Advertencia: el uso de la vuelta fuera de las funciones es obsoleto y puede causar fallos en las futuras versiones de Greasemonkey.

+0

Esa advertencia no es un problema, solo necesitas envolver tu script en una función anónima: '(function() {...})();', de todos modos es una buena práctica. Gracias por la '@ noframes', votada. – user

+1

Cambié mi aceptación. Gracias por proporcionar una forma más elegante. – fwonce

+0

De nada; encantado de ayudar. –

16

Pongo esto en la parte superior de mis guiones para evitar que se ejecuta en marcos o iframes:

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

Eso es todo! GRACIAS :-) – fwonce

Cuestiones relacionadas