title: Call to a complex page function works in Tampermonkey but not Greasemonkey?
body: <p>I'm trying to open an overlay dialog for the XenForo forums, reusing an existing library:</p>
  
  <pre><code>// ==UserScript==
  // @name         FooBar
  // @match        https://xenforo.com/community/
  // @grant        GM_getValue
  // ==/UserScript==
  
  (function() {
  'use strict';
  
  unsafeWindow.XenForo.createOverlay(null, $(`
  &lt;div class="xenOverlay"&gt;
      &lt;form id="efd_form"&gt;
          &lt;div class="section"&gt;
              &lt;h2 class="heading h1"&gt;Greasemonkey test&lt;/h2&gt;
              &lt;h3 class="primaryContent"&gt;${GM_getValue('lorem', 'Lorem ipsum dolor sit amet …')}&lt;/h3&gt;
          &lt;/div&gt;
      &lt;/form&gt;
  &lt;/div&gt;
  `), { noCache: true }).load();
  })();
  </code></pre>
  
  <p>When you visit <a href="https://xenforo.com/community/" rel="nofollow">https://xenforo.com/community/</a> with Tampermonkey (Firefox/Chromium) this script will open simple dialog.<br>
  But when you try it with Greasemonkey (Firefox) nothing happens. Is there a way to achieve this while having access to <code>GM_getValue</code>?</p>