Powercharging FireFox using GreaseMonkey

Lucas Jellema 1

Today I discovered GreaseMonkey mozdev.org – greasemonkey: home. Greasemonkey is a Firefox extension which lets you to add bits of DHTML (“user scripts”) to any web page to change its behavior. In much the same way that user CSS lets you take control of a web page’s style, user scripts let you easily control any aspect of a web page’s design or interaction.

Installation takes all of 3 minutes and you can then start adding (or writing) GreaseMonkey scripts, I have started with a few scripts that do the following:

  • Create a Table of Contents for any WebPage – it displays a select-list at the bottom of your webpage; the list contains all header elements (h1..h#) in the page. By selecting an element in the list, the browser scrolls to that position in the webpage. This is really useful!
  • Add zooming to images – a nice but not as useful script that adds a zoom menu to any image displayed in webpages I visit; with this zoom-menu I can zoom in or out on these images (usually not resulting in a very sharp images by the way)
  • Debuggin XmlHttpRequest (when doing AJAX) – What it shows is the XMLHttpRequest debugging console, a floating div embedded in the page being debugged. This replaces the javascript console, which the previous script used for tracing. Each individual XMLHttpRequest invocation will get listed there, with all the details on the request and the response, as well as options to edit and replay the request or replay the response callback.
  • Check Range. It lets you check or uncheck a range of checkboxes by clicking the first checkbox and then Shift+clicking the last checkbox.

There is a long list of GreaseMonkey scripts at http://dunck.us/collab/GreaseMonkeyUserScripts. Other examples include: Exchequer: Convert prices to your own currency by hovering over them. Handles multiple currencies with the same symbol., Expand TextArea: allows you to resize textareas., Expand TextArea: allows you to resize textareas., Expand TextArea: allows you to resize textareas., PostInterceptor: Intercept POST requests and let user modify before submit.

My challenge now of course is to write my own user scripts…

One thought on “Powercharging FireFox using GreaseMonkey

  1. GreaseMonkey is great, just make sure that you get the patched version, there are some security issues with older versions.

Comments are closed.

Next Post

OERR - In search of Error Messages/Events

Sometimes you want to search for Oracle database messages, their meaning or you are in search of specific database event settings.For instance, a long time ago i was searching for an event that would trace when an datafile would expand / autoextend. I encountered latching problems on a Siebel system based on an new Oracle Failsafe environment (Windows 2000 cluster). I wanted to be sure that these latching problems weren't introduced by the newly introduced datafile AUTOEXTEND feature. So i put in a TAR on metalink with the request if there was a way to trace, eq. an event setting, when a datafile extended. This way i could cross-reference this timestamp to the timestamps i was registering my latch problems. The reponse took a long time. I was in need for an answer, so i created a workaround via a PL/SQL procedure. This procedure was executed via the database job scheduler. Every time a datafile extended, the timestamp, SCN, extend growth etc. was picked up by this procedure, and the data was stored in a table.Lately i am in search of XML DB knowledge, more specific, DBA/database specific XML DB knowledge (object performance/sizing/XML Schema tuning, etc. stuff). In the new Oracle 10g Release 2 manuals, i came across the event setting 31098: "Internal event to turn on XDB tracing". So i wondered if there were more of these settings. Apparently this setting was already applicable in Oracle 10g Release 1.I have a small script called OERR, like the Oracle message utility under UNIX. It does the following:

SQL> @oerr 31098

Error 31098 is: ORA-31098: Internal event to turn on XDB tracing

The SQL code for this script: