- 作者:zhaozj
- 发表时间:2020-12-23 10:58
- 来源:未知
作者:死在水中的鱼(死鱼)
以前老觉得FORM里的FILE按钮不够完美,因为它没有FILTER,所以一打开窗口就全部文件也给显示出来。于是调用了系统的OpenDialog控件,这样以后写上传文件时就能够的显得个性化了。。但只对WIN系统有用!!!
测试代码如下:直接保存为一个HTM文件即可以看效果<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> OpenDialog控件测试 </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD>
<BODY><object id=FileDialog style="left: 0px; TOP: 0px" classid="clsid:f9043c85-f6f2-101a-a3c9-08002b2f49fb" codebase="http://activex.microsoft.com/controls/vb5/comdlg32.cab"></object><input type=button value="打开文件" οnclick='OpenFile()'><input type=button value="选择颜色" οnclick='OpenColor()'><input type=button value="选择字体" οnclick='OpenFont()'><div align=left id=App style="border:1 solid #000000;background-color:#FFFFFF;height:300px;overflow:auto;width:100%;z-index:2" contentEditable></div><SCRIPT LANGUAGE="VBScript">'/***************************文件窗口测试****************************************Sub OpenFileOn Error Resume NextDim sFilterWith FileDialog .FileName="" .DialogTitle="请选择要打开的文件" .Flags=4+4096 '打开文件窗口的样式; 4 = 隐藏“只读文件”按钮选项 4096 = 选择的文件必须存在 512 = 可以选择多文件(但窗口样式会改变成旧时系统的窗口样式) sFilter="可执行文件(*.exe,com)|*.exe;*.com" sFilter=sFilter + "|图片文件(*.jpeg,jpg,gif,png)|*.jpeg;*.jpg;*.gif;*.png;*.bmp" sFilter=sFilter + "|所有文件(*.*)|*.*" .Filter=sFilter '打开文件窗口的过滤器 .CancelError = True .ShowOpen '写成.ShowSave则是显示保存文件的窗口 If Err.Number<>0 Then Err.Clear document.all.App.innerText = "你没有选择任何文件" Exit Sub End If document.all.App.innerText= "你选择的文件是:"+.FileNameEnd WithEnd Sub'/***************************颜色窗口测试****************************************Sub OpenColorOn Error Resume NextDim sColorWith FileDialog .CancelError = True .Flags=2 '1 = 不显示自定义颜色面板 2 = 先显示自定义颜色面板 .ShowColor If Err.Number<>0 Then Err.Clear document.all.App.innerText = "你没有选择任何颜色" document.all.App.style.background="#FFFFFF" Exit Sub End If sColor="#"+Left(StrReverse("000000"+Cstr(Hex(.Color))),6) document.all.App.innerHTML= "<font color="+sColor+">你选择的颜色是:"+sColor+"</font>"End WithEnd Sub'/***************************字体窗口测试****************************************Sub OpenFontOn Error Resume NextDim sFont,sColorWith FileDialog .CancelError = True .Flags=3 + 256 '1 = 屏幕字体集 2 = 打印机字体集 3 = 包含1,2的字体集 256 = 显示字体效果栏(颜色,下划线,删除线等) .ShowFont If Err.Number<>0 Then Err.Clear document.all.App.innerText = "你没有选择任何字体" Exit Sub End If sFont="名称:"+.FontName+" 字体大小:"+Cstr(.FontSize) If .FontBold Then sFont=sFont+" 粗体:是" Else sFont=sFont+" 粗体:否" End If If .FontItalic Then sFont=sFont+" 斜体:是" Else sFont=sFont+" 斜体:否" End If If .FontStrikeThru Then sFont=sFont+" 删除线:是" Else sFont=sFont+" 删除线:否" End If If .FontUnderLine Then sFont=sFont+" 下划线:是" Else sFont=sFont+" 下划线:否" End If sColor="#"+Left(StrReverse("000000"+Cstr(Hex(.Color))),6) sFont=sFont+" 字体颜色:"+sColor document.all.App.innerText= "你选择的字体是:"+sFontEnd WithEnd Sub</SCRIPT></BODY></HTML>