wiki:Transform2

How transformation script works

The transform javascript is executed by GlimmerBlocker and not by Safari. The script is never sent to Safari but only the result of running the script inside the GlimmerBlocker proxy.

How the transformation works:

  1. GlimmerBlocker retrieves the html document from the server.
  2. The html is stored as a simple string in the global variable t. It is not stored as a DOM object like browsers do.
  3. The transform script is executed. The script should modify the global variable to its liking by e.g. removing all <script> elements.
  4. The updated value of the t variable extracted and used for the following steps.
  5. Any css/js from the css/js tabs are added.
  6. GlimmerBlocker sends the result to Safari.

Reference

The content is stored in the global t object. See the Object Reference for all the utilities and information that GlimmerBlocker provides.

Html transformation examples

Simple subsitution of contents:

t = t.replace(/documentation/, "pure void");

A convenience method is provided for this, so the above code can be reduced to:

replace(/documentation/, "pure void");

Some sites don't provide a desciptive <title> but uses the company name for all pages. This can be fixed by extracting a resonable name from the html body and updating the <title> using the convenience function gb.setDocumentTitle():

var m = t.match(/<h1><span id="item_name">(.+?)<\/span><\/h1>/i);
if (m)
    gb.setDocumentTitle(m[1]);

Some sites works best without Javascript at all because they do awful things like using Flash™ where a simple <img> would suffice. A simple convenience function fixes this:

gb.zapScriptElements();

Got a good example which would improve this page? Send it to: [feedback@glimmerblocker.org]

xml samples

Look at the feedburner rule in the 'Site-specific ad removal' filter.

Last modified 6 years ago Last modified on 06/13/09 20:47:43