페이지에서 div 콘텐츠 만 인쇄하려면 다음 JQuery 인쇄 플러그인을 사용해 보았습니다. IE6에서는 Firefox이지만 IE8에서는 작동하지 않습니다. IE8은 "인쇄 가능한"클래스 콘텐츠 대신 실제 페이지를 인쇄합니다. 아마도 IE7에서 같은 문제가 있지만 아직 테스트하지 않았습니다. 아래의 인쇄 코드를 IE8 및/또는 IE7에서 사용할 수있는 솔루션이 있습니까?IE에서 웹 페이지 문제의 Jquery 인쇄 부분
페이지 링크 : http://www.bennadel.com/blog/1591-Ask-Ben-Print-Part-Of-A-Web-Page-With-jQuery.htm
코드는 약간 또한 서식 인쇄 스타일 시트를 가져 아래 수정했습니다.
Blog Entry: Ask Ben: Print Part Of A Web Page With jQuery
Author: Ben Nadel/Kinky Solutions
Link: http://www.bennadel.com/index.cfm?dax=blog:1591.view
Date Posted: May 21, 2009 at 9:10 PM
// Create a jquery plugin that prints the given element.
jQuery.fn.print = function(){
// NOTE: We are trimming the jQuery collection down to the
// first element in the collection.
if (this.size() > 1){
this.eq(0).print();
return;
} else if (!this.size()){
return;
}
// ASSERT: At this point, we know that the current jQuery
// collection (as defined by THIS), contains only one
// printable element.
// Create a random name for the print frame.
var strFrameName = ("printer-" + (new Date()).getTime());
// Create an iFrame with the new name.
var jFrame = $("<iframe name='" + strFrameName + "'>");
// Hide the frame (sort of) and attach to the body.
jFrame
.css("width", "1px")
.css("height", "1px")
.css("position", "absolute")
.css("left", "-9999px")
.appendTo($("body:first"))
;
// Get a FRAMES reference to the new frame.
var objFrame = window.frames[ strFrameName ];
// Get a reference to the DOM in the new frame.
var objDoc = objFrame.document;
// Grab all the style tags and copy to the new
// document so that we capture look and feel of
// the current document.
// Create a temp document DIV to hold the style tags.
// This is the only way I could find to get the style
// tags into IE.
var jStyleDiv = $("<div>").append(
$("style").clone()
);
// Write the HTML for the document. In this, we will
// write out the HTML of the current element.
objDoc.open();
objDoc.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
objDoc.write("<html>");
objDoc.write("<body>");
objDoc.write("<head>");
objDoc.write("<title>");
objDoc.write(document.title);
objDoc.write("</title>");
objDoc.write(jStyleDiv.html());
// importing printable style sheet
objDoc.write("<style type=\"text/css\"> @import url(\"./styles/Quiz_print.css\") </style>");
objDoc.write("</head>");
objDoc.write(this.html());
objDoc.write("</body>");
objDoc.write("</html>");
objDoc.close();
// Print the document.
objFrame.focus();
objFrame.print();
// Have the frame remove itself in about a minute so that
// we don't build up too many of these frames.
setTimeout(
function(){
jFrame.remove();
},
(60 * 1000)
);
}
IE 8에서 오류가 발생합니까? – b01
인쇄 된 형식의 "인쇄 가능한"div 대신 실제 페이지를 인쇄하는 데 오류가 없습니다. – reinhat
PC에서 로컬로 재밌는 코드는 잘 작동하지만, JSFiddle에 코드를 추가하면 코드가 제대로 작동합니다. – b01