How to exclude iframe in Greasemonkey or Tampermonkey?

greasemonkey, javascript, tampermonkey

Solution

Greasemonkey now supports the `@noframes` directive (long supported by Tampermonkey and Scriptish). Use that for a cleaner way to block operation in iframes.

Unfortunately, npdoty's answer will now trigger a warning in Firefox's browser console:

Warning: use of return outside of functions is deprecated and may cause failures in future versions of Greasemonkey.

Problem

I have created a Greasemonkey script for a website. What the script does is adding a div at the end of the page. ``` document.body.insertBefore(myDiv, document.body.firstChild); ``` But now the site adds an iframe for google-ads, as a result my div appears in the iframe too, which is not what I want. How can I stop the script affecting iframes?

Original source