// jshint ignore: start /* * printThis v1.9.0 * @desc Printing plug-in for jQuery * @author Jason Day * * Resources (based on) : * jPrintArea: http://plugins.jquery.com/project/jPrintArea * jqPrint: https://github.com/permanenttourist/jquery.jqprint * Ben Nadal: http://www.bennadel.com/blog/1591-Ask-Ben-Print-Part-Of-A-Web-Page-With-jQuery.htm * * Licensed under the MIT licence: * http://www.opensource.org/licenses/mit-license.php * * (c) Jason Day 2015 * * Usage: * * $("#mySelector").printThis({ * debug: false, * show the iframe for debugging * importCSS: true, * import page CSS * importStyle: false, * import style tags * printContainer: true, * grab outer container as well as the contents of the selector * loadCSS: "path/to/my.css", * path to additional css file - us an array [] for multiple * pageTitle: "", * add title to print page * removeInline: false, * remove all inline styles from print elements * printDelay: 333, * variable print delay * header: null, * prefix to html * footer: null, * postfix to html * base: false, * preserve the BASE tag, or accept a string for the URL * formValues: true * preserve input/form values * canvas: false * copy canvas elements (experimental) * doctypeString: '...' * enter a different doctype for older markup * }); * * Notes: * - the loadCSS will load additional css (with or without @media print) into the iframe, adjusting layout * * jshint onevar: false, smarttabs: true, devel: true */ ( function( $ ) { var opt; $.fn.printThis = function( options ) { opt = $.extend( {}, $.fn.printThis.defaults, options ); var $element = this instanceof jQuery ? this : $( this ); var strFrameName = 'printThis-' + new Date().getTime(); if ( window.location.hostname !== document.domain && navigator.userAgent.match( /msie/i ) ) { // Ugly IE hacks due to IE not inheriting document.domain from parent // checks if document.domain is set by comparing the host name against document.domain var iframeSrc = 'javascript:document.write("