Snufkin Browser - Taking control of Internet Explorer

Internet Explorer has an extremely flexible object model, and combining this with the ability to automate it from script, you can easily add features to the browser to overcome some flaws.

To do this you need to install ScriptX an ActiveX control from Meadroid available from Meadroid it actually is for printing from IE, but it gives the ability to scripts to connect to events from applications. You also of course require a copy of Internet Explorer 5 or above on a Windows 32 platform.

After installing ScriptX (no need to accept any "licences") download snufkin.0.25.wsf and run it, this will open a copy of Internet Explorer and navigate to about:blank

In its default configuration window.open will be limited to pages opening the urls that do not begin http:, it will also limit the size of windows to not larger than the size of the opening window. All popups will also have a fullset of chrome regardless of requested features.

If there are elements within the page, a LINK menu will be created across the top.

Location changes caused by the javascript location.replace will be changed to location.href so your history is unaffected, and you will be prompted to confirm such navigations.

Navigation with javascript history object, will also be confirmed.

Javascript window.resizeBy and window.resizeTo are disabled.

To validate a page, you enter "snufkin:validate" in the location bar (you can add this to your "favorites" or links bar for quick access). This validation uses the Site Valet XML validation.

"snufkin:getlinks" opens a new window, and creates little sub-windows in it of every link on the current page - difficult to explain, please try it.

"snukin:head" and "snufkin:noframes" provide the headers returned by a head request, and the noframes content respectively.

position:fixed is supported for linked stylesheets, not inline.

when you mouseover a link, it adds the result of a head request on the href of that link to the title attribute.

Images with a LongDesc attribute have a D link added afterwards.

Annotea is an annotation technology, Snufkin contains an Annotea client, to obtain annotations, use "snufkin:annotations", this will add the annotations in page - to add an annotation you use "snufkin:annotate", which opens up a box for entering the annotation - clicking on the element on the page you wish to add it to will provide an xpointer in the box - but the xpointer implementation is pretty ropey (portions of the xpath code are based on Annozilla's implementation.) You can also delete your annotations (although the interface suggests you can delete everyones!).

To use Annotation, you first need to add your username and password into the script, to do this you have to edit it, sometime soon when Snufkin is more or a tool, than a "feasibility study", I'll put some mechanism in, but for now you need to edit it. Open the file snufkin.0.25.wsf up in a text editor, and change the


 Config.AnnoteaServer="http://annotest.w3.org/annotations"
 Config.AnnoteaUserName=""
 Config.AnnoteaPassword=""
 Config.AutoGetAnnotations=false 
lines to refer to your server, username and password. Config.AutoGetAnnotations will automatically get annotations for the pages you visit if it is set to true, this is rather slow currently, so the default is off.

There are other configuration options in the file, they should be self explanatory.

Any suggestions, requests, features, bugs please get in touch by email jim@jibbering.com, Jibbering.com