页面的打印问题

hypersky 2000-12-18 11:00:00
在有框架的网页中如何实现打印指定的窗体,如网页中有三个框架,frame1,frame2,frame3,用window.print()能不能指定就打印frame2,如何实现?
...全文
107 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
y1g1y1 2001-07-24
  • 打赏
  • 举报
回复
利用这个控件,什么不能做?
http;//ygyuan.go.163.com
http://www.ylw.com.cn/yf/printview/printview.htm
yankee 2000-12-18
  • 打赏
  • 举报
回复
给你一段打印frame的代码,自己打开一看既知;
<html style="font-family: Verdana; font-size: 10pt">

<head>
<title>Frame Is Here</title>
</head>

<body bgcolor="infobackground">

<p>This is a main page</p>
<script defer language=JScript>
function printFrame(frame, onfinish) {
if ( !frame ) frame = window;

if ( frame.document.readyState !== "complete" &&
!confirm("The document to print is not downloaded yet! Continue with printing?") )
{
if ( onfinish ) onfinish();
return;
}

if ( printIsNativeSupport() ) {
/* focus handling for this scope is IE5Beta workaround,
should be gone with IE5 RTM.
*/
var focused = document.activeElement;
frame.focus();
frame.self.print();
if ( onfinish ) onfinish();
if ( focused && !focused.disabled ) focused.focus();
return;
}

var eventScope = printGetEventScope(frame);
var focused = document.activeElement;

window.printHelper = function() {
execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
printFireEvent(frame, eventScope, "onafterprint");
printWB.outerHTML = "";
if ( onfinish ) onfinish();
if ( focused && !focused.disabled ) focused.focus();
window.printHelper = null;
}

document.body.insertAdjacentHTML("beforeEnd",
"<object id=\"printWB\" width=0 height=0 classid=\"clsid:8856F961-340A-11D0-A96B-00C04FD705A2\"></object>");

printFireEvent(frame, eventScope, "onbeforeprint");
frame.focus();
window.printHelper = printHelper;
setTimeout("window.printHelper()", 0);
}

// helpers
function printIsNativeSupport() {
var agent = window.navigator.userAgent;
var i = agent.indexOf("MSIE ")+5;
return parseInt(agent.substr(i)) >= 5 && agent.indexOf("5.0b1") < 0;
}

function printFireEvent(frame, obj, name) {
var handler = obj[name];
switch ( typeof(handler) ) {
case "string": frame.execScript(handler); break;
case "function": handler();
}
}

function printGetEventScope(frame) {
var frameset = frame.document.all.tags("FRAMESET");
if ( frameset.length ) return frameset[0];
return frame.document.body;
}

</script>

<p><input disabled name="idPrint" type="button" value="Print this page"
onclick="print()"> <input disabled name="idPrintFrame" type="button"
value="Print the frame below" onclick="printFrame(idFrame)"> </p>

<IFRAME style="visibility: visible" name="idFrame" width="50%" height="30%" src="frame.htm">
</IFRAME>

<script defer>
function window.onload() {
idPrint.disabled = false;
idPrintFrame.disabled = false;
}
</script>
</body>
</html>

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧