[Greasemonkey] Special casing data: URIs

Julien Couvreur julien.couvreur at gmail.com
Thu Apr 14 19:25:46 EDT 2005


Just tried the approach described by Mook and it works. Below is a
sample script, url encoded (instead of base64) with a //.user.js
comment at the end of the data url. I have tried it with the old
version of Greasemonkey (that didn't recognize data: urls as potential
user scripts).

I'm fine with going with that approach ;-)

Re: data: url size limit
I actually think that url encoding saves some room, if you first
remove most of the spaces/tabs in the script that gets encoded.

Cheers,
Julien

data:text/javascript;charset=utf-8,%2F%2F%20%3D%3DUserScript%3D%3D%0D%0A%2F%2F%20%40name%20%20%20%20%20%20%20%20%20%20%20%20MyCustomUserScript%0D%0A%2F%2F%20%40namespace%20%20%20%20%20%20%20TODO%0D%0A%2F%2F%20%40description%20%20%20%20%20TODO%0D%0A%2F%2F%20%40include%20%20%20%20%20%20%20%20%20*%0D%0A%2F%2F%20%40exclude%20%20%20%20%20%20%20%20%20%0D%0A%2F%2F%20%3D%3D%2FUserScript%3D%3D%0D%0A%2F%2F%20Generated%20by%3A%20http%3A%2F%2Fblog.monstuff.com%2Farchives%2Fimages%2FGreaseMonkeyScriptGenerator.html%0D%0A%0D%0A(function()%20%7B%0D%0A%20%20%20%2F%2F%20freeform%20code%20goes%20here%0D%0A%0D%0A%20%20%20%2F%2F%20iterate%20over%20links%20and%20add%20template%0D%0A%20%20%20var%20orig_page_links%20%3D%20document.links%3B%0D%0A%20%20%20var%20page_links%20%3D%20new%20Array(orig_page_links.length)%3B%0D%0A%20%20%20for%20(var%20i%3D0%3B%20i%20%3C%20page_links.length%3B%20i%2B%2B)%7B%0D%0A%20%20%20%20%20%20%20page_links%5Bi%5D%20%3D%20orig_page_links%5Bi%5D%3B%0D%0A%20%20%20%7D%0D%0A%20%20%20for%20(var%20i%3D0%3B%20i%20%3C%20page_links.length%3B%20i%2B%2B)%7B%0D%0A%20%20%20%20%20%20%20if%20(page_links%5Bi%5D.href.match(%2F%5C.torrent%24%2Fi))%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20var%20span%20%3D%20document.createElement('span')%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20var%20code_str%20%3D%20%22%20%3Ca%20href%3D%5C%22%22%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20code_str%20%2B%3D%20page_links%5Bi%5D.href%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20code_str%20%2B%3D%20%22%5C%22%3E%3Cimg%20src%3D%5C%22data%3Aimage%2Fgif%3Bbase64%2CR0lGODdhMAAwAPAAAAAAAP%2F%2F%2FywAAAAAMAAwAAAC8IyPqcvt3wCcDkiLc7C0qwyGHhSWpjQu5yqmCYsapyuvUUlvONmOZtfzgFzByTB10QgxOR0TqBQejhRNzOfkVJ%2B5YiUqrXF5Y5lKh%2FDeuNcP5yLWGsEbtLiOSpa%2FTPg7JpJHxyendzWTBfX0cxOnKPjgBzi4diinWGdkF8kjdfnycQZXZeYGejmJlZeGl9i2icVqaNVailT6F5iJ90m6mvuTS4OK05M0vDk0Q4XUtwvKOzrcd3iq9uisF81M1OIcR7lEewwcLp7tuNNkM3uNna3F2JQFo97Vriy%2FXl4%2Ff1cf5VWzXyym7PHhhx4dbgYKAAA7%5C%22%20%2F%3E%3C%2Fa%3E%22%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20span.innerHTML%20%3D%20code_str%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20page_links%5Bi%5D.parentNode.insertBefore(span%2C%20page_links%5Bi%5D.nextSibling)%3B%0D%0A%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%7D%0D%0A%7D)()%3B%0D%0A%2F%2F.user.js


More information about the Greasemonkey mailing list