printThis 1.10 Test
Verify removeScripts and related changes to printContainer
by _sir
HTML
<div id="header">
<h1>
Head!
</h1>
</div>
<hr>
<div id="printable">
<div id="foo">
Some text.
</div>
<script>
document.getElementById('foo').innerHTML += "<p>More!</p>";
</script>
</div>
<button class="b1">
Print - leave scripts
</button>
<br>
<button class="b2">
Print - remove scripts
</button>
<br>
<button class="b3">
Print - no container
</button>
<br>
<button class="b4">
Print - no container, no scripts
</button>
JavaScript
/*
* printThis v1.10.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
* removeScripts: false // remove script tags from print content
* });
*
* Notes:
* - the loadCSS will load additional css (with or without @media print) into the iframe, adjusting layout
*/
;
(function($) {
function appendContent($el, content) {
if (!content) return;
// Simple test for a jQuery element
$el.append(content.jquery ? content.clone() : content);
}
function...