请帮我解释一下下面的代码的整个逻辑,谢谢! 是的,但是我想理解一下它的代码,但是我没有看明白?能不能给点解释,在线等!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function printFrame(frame, onfinish) { if ( !frame ) 如果frame未定义 { frame = window;则定义为当前窗口 } if ( frame.document.readyState !== "complete" &&如果窗口内readyState的值不是complete !confirm("The document to print is not downloaded yet! Continue with printing?") ) 且你按了No键 { if ( onfinish ) 如果参数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);}// helpersfunction 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;} 关于js计算和判断 操作html nodejs如何获取get传递的参数值 正则表达式怎么判断多个以逗号分隔的手机号 函数调用问题 奇妙的js,运行得到的不是我想要的效果,大家帮我运行试试,谢谢 onreadystatechange怎么不响应啊? 关于ie版本对全屏窗口控制支持的问题 用javaScript怎样打开 c:\myWord.doc 的本地Word文档 ,怎么写代码保存这个word文档到本地? 如何控制小数点后面的位数,javascript里相关的函数吗? 请教关于下滑条的问题 iframe老问题:怎么刷新多重嵌套的iframe? IE全屏问题
{
if ( !frame ) 如果frame未定义
{
frame = window;则定义为当前窗口
}
if ( frame.document.readyState !== "complete" &&如果窗口内readyState的值不是complete
!confirm("The document to print is not downloaded yet! Continue with printing?") ) 且你按了No键
{
if ( onfinish ) 如果参数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;
}