 <p>Not to be marked as correct, just expanding on the above answer. Since all phantomjs wrappers (like <a href="https://github.com/peerigon/phridge" rel="nofollow">phridge</a> and <a href="https://github.com/sgentle/phantomjs-node" rel="nofollow">phantomjs-node</a>) basically spawn a new phantomjs process, the result should be the same when run from a nodejs context.</p> <p><strong>phatomjs-webfonts.html:</strong></p> <pre><code>&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;PhantomJS WebFontsTest&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;script src="https://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js"&gt;&lt;/script&gt; &lt;script&gt; WebFont.load({ google: { families: ['Droid Sans', 'Droid Serif'] }, loading: function(){ console.log('WebFonts loading'); }, active: function(){ console.log('WebFonts active'); }, inactive: function(){ console.log('WebFonts inactive'); } }); &lt;/script&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> <p><strong>phantomjs-webfonts.js:</strong></p> <pre><code>var page = require('webpage').create(); page.settings.userAgent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'; page.onConsoleMessage = function(msg, lineNum, sourceId) { console.log('Console: ' + msg); }; page.open('http://&lt;server-address&gt;/phantomjs-webfonts.html', function(status) { console.log("Loading status: " + status); }); </code></pre> <p><strong>Command:</strong></p> <pre><code>phantomjs phantomjs-webfonts.js </code></pre> <p><strong>Output</strong>:</p> <pre class="lang-none prettyprint-override"><code>Console: WebFonts loading Console: WebFonts active Loading status: success </code></pre>