This makes the browser support emoji by using native fonts if possible and a fallback if not.
当前为
As the URL to the source code makes clear, this is ultimately derived from the Chromoji extension for Google Chrome, although it is now very different: https://github.com/lewisje/Chromoji/tree/userscript
In case you would prefer to install the extension, it is now on the Chrome Web Store: https://chrome.google.com/webstore/detail/emoji-polyfill/kaplhmhahkanhjahbdbaamdaililfmkj
In case you would prefer a bookmarklet, here it is: javascript:var i,s,ply,ss=['//greasyfork.org/scripts/8598-emoji-polyfill/code/Emoji Polyfill.user.js'];if(!ply){ply=true;for(i=ss.length;i--;){s=document.createElement('script');s.src=ss[i];document.body.appendChild(s);}}void(0);
After experimenting with stripping out the functionality of Chromoji to solely support textual emoji, I discovered that I needed none of the power of a Chrome extension to do it, and I ended up stripping out almost all of the code; after that, to make it into a UserScript, I only needed to inject the tiny stylesheet included with the extension, and also pack in a few polyfills for browsers other than Chrome.
I ended up hosting the fonts and linking to them externally, so that I could potentially support IE8 (which does not support data: URIs in webfonts) and Opera 9 (which only supports SVG webfonts, which were all too big for data: URIs, even after subsetting).