I am trying to get some code working cross-browser and have run into some issues. At first I was using some code I found here:

However, I have some users who are unable to print in IE8. Their browser freezes up with no error message when attempting to print using the above code. I am not entirely sure what the cause is, but I suspect it may have something to do with document.write/doctype/ie-bug.

The majority of my javascript is done in jquery so I thought I would look into a jquery-based solution. I have given this a go, but I'm having trouble creating a working solution without the document.write function. This is what I have right now, any suggestions on how I can get this print code to work in cross-browser (especially IE).

toPrint = function(id){
		var oIframe = $jq('#print-area');
		var oContent = $jq(id).parent().html();
		var oHead = $jq("head").html();
		var oDoc = ($jq(oIframe)[0].contentWindow || $jq(oIframe)[0].contentDocument);
		if ($jq(oDoc)[0].document) {
			oDoc = $jq(oDoc)[0].document;
	catch(e) {

getPrintStructure = function(oHead){
		structure += '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head>';
		structure += oHead;
		structure += "<style type='text/css' media='print'>"+
			"body {margin:0; padding:0; line-height: 1.4em; word-spacing:1px; letter-spacing:0.2px; font: 13px Arial, Helvetica,'Lucida Grande', serif; color: #000;}"+
		structure += "</head><body onload='this.focus(); this.print();'>";
		structure += "</body></html>";
		return structure;
The above code fails around:
Where I attempt to create the body structure for the iframe document.

Thanks for your help, i've stuck on this one for a while and not sure where to go next.