2009-10-08 15 views
10

Stworzyłem skrypt Greasemonkey dla strony internetowej. To, co robi skrypt, to dodanie elementu div na końcu strony.
Jak wykluczyć element iframe w Greasemonkey lub Tampermonkey?

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

Ale teraz w miejscu dodaje iframe na Google reklam, w wyniku mojego div pojawia się w iframe, który też nie jest to, co chcę.

Jak zatrzymać skrypt wpływający na elementy iframe?

Odpowiedz

5

Greasemonkey obsługuje teraz the @noframes directive (długo wspierany przez Tampermonkey i Scriptish).
Użyj tego, aby uzyskać bardziej przejrzysty sposób blokowania operacji w elementach iframe.


Niestety npdoty's answer będzie teraz wywołać ostrzeżenie w konsoli przeglądarki Firefoksa:

Ostrzeżenie: Korzystaj zwrotu poza funkcjami jest przestarzała i może spowodować błędy w przyszłych wersjach Greasemonkey.

+0

To ostrzeżenie nie jest problemem, wystarczy zawinąć skrypt w anonimowej funkcji: '(function() {...})();', to i tak dobra praktyka. Dziękujemy za '@ noframes', przegłosowano. – user

+1

Zmieniono moją akceptację. Dzięki za zapewnienie bardziej eleganckiego sposobu. – fwonce

+0

Nie ma za co; miło, że mogłem pomóc. –

16

kładę to na szczycie moich skryptów, aby uniknąć jazdy na ramki lub iframe:

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

To wszystko! DZIĘKI :-) – fwonce

Powiązane problemy