My first GreaseMonkey script: Blogspot Post PrintView

My first GreaseMonkey script. It provides print option for your posts hosted in When this script is running a ‘Print’ option will appear next to post’s date header. It depends heavily on the internal code of the template, hence it can very well not work on many non-stock themes and some stock themes.

You can install this from here. I highly recommend that you install it from there.

Anyway I am also providing the code below.
The code
License: GNU Public License version 3.

[code lang=”javascript”]
// Show Posts in Blogspot in Print View
// version 0.1 beta
// 2005-05-02
// Copyright (c) 2008, AppleGrew
// Released under the GPL license
// ——————————————————————–
// This is a Greasemonkey user script. To install it, you need
// Greasemonkey 0.3 or later:
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
// To uninstall, go to Tools/Manage User Scripts,
// select "Access Bar", and click Uninstall.
// Usage: When using this script then a new word ‘Print’ will appear
// beside every post’s posting date header.
// ——————————————————————–
// ==UserScript==
// @name Blogspot Post PrintView
// @namespace
// @description Show Posts in Blogspot in Print View
// @include http://**
// @include file:///home/apple/Desktop/AppleGrew’s%20Mind.html*
// ==/UserScript==

var head, js;
head = document.getElementsByTagName(‘head’)[0];
if (!head) { return; }
js = document.createElement(‘script’);
js.type = ‘text/javascript’;
js.innerHTML =’function printview(id){location.href =location.href + "?print=1&id="+id+""; return;}’;

var isPrintMode = false;
var qs;
var ID=-1, postClass="post";
if (qs=location.href.match(/\?print=1&id=(\d+)&postclass=(\S+)/i)){
if(qs[1] && qs[2]){
isPrintMode = true;
ID = qs[1];
postClass = unescape(qs[2]);

var allDates, allPosts;

var postDiv = document.evaluate(
"//div[@class=’blog-posts hfeed’]",

var postDivChildren;
if(postDiv && postDiv.singleNodeValue)
postDivChildren = postDiv.singleNodeValue.childNodes;

for (var i = 0; i < thisdate =" postDivChildren[i++];" thisdate="postDivChildren[i++];" var="" thispost="postDivChildren[i++];" tagname="" i="" thispost="postDivChildren[i++];" thisdate="" id="" postid="" posttimestamp="thisDate.textContent;" newdiv="document.createElement(‘div’);" var="" divhtml=">h2dateid" href="" innerhtml =" DivHTML;" dateid = "dateid" postid = "postid" newbody = "<div\">"+document.getElementById(dateid).innerHTML+
document.body.innerHTML = newbody;