title: Jquery with Tampermonkey
body: <p>So my console is giving me this message -</p>
  
  <pre><code>    The page at https://en.wikibooks.org/wiki/Vehicle_Identification_Numbers_(VIN_codes)/GM/VIN_Codes ran insecure content from http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js.
  jquerified: true
  ERROR: Execution of script 'GMVinCodeScraper' failed! $ is not defined
  ReferenceError: $ is not defined
      at getGMCodes (eval at &lt;anonymous&gt; (eval at eventHandler (eval at &lt;anonymous&gt; (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21))))
      at Function.eval (eval at &lt;anonymous&gt; (eval at eventHandler (eval at &lt;anonymous&gt; (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21))))
      at N (eval at eventHandler (eval at &lt;anonymous&gt; (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21)))
      at l (eval at eventHandler (eval at &lt;anonymous&gt; (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21)))
      at chromeEmu.extension.onRequest.addListener.Z (eval at eventHandler (eval at &lt;anonymous&gt; (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21)))
      at W (eval at eventHandler (eval at &lt;anonymous&gt; (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:57:21)))
  </code></pre>
  
  <p>In my userscript, I am running a function that automates inclusion of jquery on the page and it seems that jquery has been loaded because I can see a script tag with the jquery url as a src attribute. </p>
  
  <p>For reference the function is here - </p>
  
  <pre><code>function jquerify(jquerified){
  if(!(window.JQuery &amp;&amp; window.Jquery.fn.jquery == '1')){
      var s = document.createElement('script');
      s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js');
      s.setAttribute('type','text/javascript');
      document.getElementsByTagName('head')[0].appendChild(s);
      jquerified = true;
      console.log("jquerified: " + jquerified);
      return jquerified; 
  }
  }
  jquerify(false);
  </code></pre>
  
  <p>So, not sure why $ would not be defined. Any idea why?</p>
  
  <p>UPDATE-</p>
  
  <p>using @require solves the problem. </p>