今天有一个同事问我,一个ppt文件另存为网页的mht文件怎么来更改它,使它打开的时候不显示左侧的大纲。要是能把大纲那个按钮去掉,就更好了。于是就进行了一番探究。首先用文本编辑器打开Mht文件,发现里面的代码多是html代码和一些其他的编码组成。于是就满口答应同事,说是保证能改。等我忙完了手头的活就帮他你弄。
等忙完了手头的活,开始着手解决这个问题。用浏览器打开这个文件,然后用 microsoft script debugger 设置断点进行调试。经过10多分钟的跟踪和测试。终于发现了解决问题的方法和途径。在ppt另存为mht文件的代码中。有如下的代码:
把如下代码中的
<frameset cols=3D"25%,*" onload=3D"Load()" id=3DPPTHorizAdjust framespacin=
g=3D1 frameborder=3D1>
改为:
<frameset cols=3D"0%,*" onload=3D"Load()" id=3DPPTHorizAdjust framespacin=
g=3D1 frameborder=3D1>
这个也比较简单了,跟踪几下,就找到了地方。
在mht文件中有如下代码:
等忙完了手头的活,开始着手解决这个问题。用浏览器打开这个文件,然后用 microsoft script debugger 设置断点进行调试。经过10多分钟的跟踪和测试。终于发现了解决问题的方法和途径。在ppt另存为mht文件的代码中。有如下的代码:
------=_NextPart_01C66948.2D444B10
Content-Location: file:///C:/6D3D4E51/030529211.files/frame.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
此代码段下面的内容就是这个网页的框架及页面。于是就把左侧的那个frame隐藏掉。Content-Location: file:///C:/6D3D4E51/030529211.files/frame.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
把如下代码中的
<frameset cols=3D"25%,*" onload=3D"Load()" id=3DPPTHorizAdjust framespacin=
g=3D1 frameborder=3D1>
改为:
<frameset cols=3D"0%,*" onload=3D"Load()" id=3DPPTHorizAdjust framespacin=
g=3D1 frameborder=3D1>
<frameset rows=3D"*,25" border=3D0>
<frameset cols=3D"25%,*" onload=3D"Load()" id=3DPPTHorizAdjust framespacin=
g=3D1 frameborder=3D1>
<frame src=3Doutline.htm title=3D"大纲" name=3DPPTOtl>
<frame src=3Dslide0002.htm title=3D"幻灯片" name=3DPPTS=
ld>
</frameset>
<frameset cols=3D"25%,*" framespacing=3D1>
<frame src=3Doutline.htm title=3D"大纲导航栏=
;" name=3DPPTOtlNav scrolling=3Dno noresize>
<frame src=3Doutline.htm title=3D"幻灯片导航=
;栏" name=3DPPTNav scrolling=3Dno noresize>
</frameset>
</frameset>
</html>
ok!达到了隐藏左侧大纲显示的效果。但是点几下大纲按钮,又显示出来了。看来还得继续,把大纲按钮也隐藏掉!<frameset cols=3D"25%,*" onload=3D"Load()" id=3DPPTHorizAdjust framespacin=
g=3D1 frameborder=3D1>
<frame src=3Doutline.htm title=3D"大纲" name=3DPPTOtl>
<frame src=3Dslide0002.htm title=3D"幻灯片" name=3DPPTS=
ld>
</frameset>
<frameset cols=3D"25%,*" framespacing=3D1>
<frame src=3Doutline.htm title=3D"大纲导航栏=
;" name=3DPPTOtlNav scrolling=3Dno noresize>
<frame src=3Doutline.htm title=3D"幻灯片导航=
;栏" name=3DPPTNav scrolling=3Dno noresize>
</frameset>
</frameset>
</html>
这个也比较简单了,跟踪几下,就找到了地方。
在mht文件中有如下代码:
Content-Location: file:///C:/6D3D4E51/030529211.files/outline.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
此代码下面有这个一个函数:Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"
function LoadNav( oId,UpdFunc )
{
document.ondragstart=3DCancelDrag
document.onselectstart=3DCancelDrag
document.body.style.margin=3D2
UpdFunc()
obj=3Ddocument.all.item(oId)
obj.style.display=3D"block"
obj.style.visibility=3D"visible"
document.bgColor=3D"threedface"
if( parent.frames["PPTNts"] )
notesBtn.style.display =3D ""
if( parent.gHasNarration )
nb_voiceBorder.style.display =3D ""
}
把其中红色的 visible改为hidden 即可。测试。正如要求的效果。ok。完工。{
document.ondragstart=3DCancelDrag
document.onselectstart=3DCancelDrag
document.body.style.margin=3D2
UpdFunc()
obj=3Ddocument.all.item(oId)
obj.style.display=3D"block"
obj.style.visibility=3D"visible"
document.bgColor=3D"threedface"
if( parent.frames["PPTNts"] )
notesBtn.style.display =3D ""
if( parent.gHasNarration )
nb_voiceBorder.style.display =3D ""
}