Print html of a html element

by NunoMira

HTML

<div>
  Div 1
</div>
<div id="div2">
  Div 2
  <img src="https://tomcat.novageo.pt/cg/deskman/images/unicorn.png" alt="Girl in a jacket">
</div>
<button onclick="$('#div2').print();">
Print html of hidden div 2
</button>

JavaScript

$.fn.extend({
	print: function() {
		var frameName = 'printIframe';
		var doc = window.frames[frameName];
		if (!doc) {
			$('<iframe>').hide().attr('name', frameName).appendTo(document.body);
			doc = window.frames[frameName];
		}
		doc.document.body.innerHTML = this.html();
		doc.window.print();
		return this;
	}
});