通過WebBrowser控制元件,實現IE瀏覽器選單功能
阿新 • • 發佈:2019-01-04
這篇文章所講的技術,只支援IE瀏覽器,請讀者注意
WebBrowser控制元件,是IE瀏覽器的內建控制元件。顧名思義,這個控制元件我們可以看成是瀏覽器本身。通過WebBrowser控制元件,可以實現一部分IE瀏覽器的選單命令。
1. 使用
首先在畫面上要通過<object>標籤建立這個控制元件。
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>
2. 呼叫方法
WebBrowser.ExecWB nCmdID, nCmdExecOpt, [pvaIn], [pvaOut]
通過這個控制元件的ExecWB方法,執行命令。例如,選單的開啟功能:
document.all.WebBrowser.ExecWB(1,1);
3. 方法的引數
3.1 nCmdID 引數(這些引數可以通過變數名知道對應選單上的功能,這裡不再逐個描述)
3.2 nCmdExecOpt 引數(不知道如何的話,第二個引數使用1)OLECMDID_OPEN = 1 OLECMDID_NEW = 2 OLECMDID_SAVE = 3 OLECMDID_SAVEAS = 4 OLECMDID_SAVECOPYAS = 5 OLECMDID_PRINT = 6 OLECMDID_PRINTPREVIEW = 7 OLECMDID_PAGESETUP = 8 OLECMDID_SPELL = 9 OLECMDID_PROPERTIES = 10 OLECMDID_CUT = 11 OLECMDID_COPY = 12 OLECMDID_PASTE = 13 OLECMDID_PASTESPECIAL = 14 OLECMDID_UNDO = 15 OLECMDID_REDO = 16 OLECMDID_selectALL = 17 OLECMDID_CLEARselectION = 18 OLECMDID_ZOOM = 19 OLECMDID_GETZOOMRANGE = 20 OLECMDID_updateCOMMANDS = 21 OLECMDID_REFRESH = 22 OLECMDID_STOP = 23 OLECMDID_HIDETOOLBARS = 24 OLECMDID_SETPROGRESSMAX = 25 OLECMDID_SETPROGRESSPOS = 26 OLECMDID_SETPROGRESSTEXT = 27 OLECMDID_SETTITLE = 28 OLECMDID_SETDOWNLOADSTATE = 29 OLECMDID_STOPDOWNLOAD = 30
OLECMDEXECOPT_DODEFAULT = 0,
OLECMDEXECOPT_PROMPTUSER = 1,
LECMDEXECOPT_DONTPROMPTUSER = 2,
OLECMDEXECOPT_SHOWHELP = 3
3.3 常用引數
WebBrowser.ExecWB(1,1) //開啟 WebBrowser.ExecWB(2,1) //關閉現在所有的IE視窗,並開啟一個新視窗 WebBrowser.ExecWB(4,1) //儲存網頁 WebBrowser.ExecWB(6,1) //列印 WebBrowser.ExecWB(7,1) //列印預覽 WebBrowser.ExecWB(8,1) //列印頁面設定 WebBrowser.ExecWB(10,1) //檢視頁面屬性 WebBrowser.ExecWB(15,1) //好像是撤銷,有待確認 WebBrowser.ExecWB(17,1) //全選 WebBrowser.ExecWB(22,1) //重新整理 WebBrowser.ExecWB(45,1) //關閉窗體無提示
4. 測試頁面
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<meta name="author" content="[email protected]" />
<title>WebBrowser Test</title>
</head>
<body>
This is a WebBrowser Test.<br/>
<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WebBrowser width=0></OBJECT>
<input name="btn1" onClick="document.all.WebBrowser.ExecWB(1,1) " type="button" value="開啟">
<input name="btn2" onClick="document.all.WebBrowser.ExecWB(2,1) " type="button" value="關閉所有">
<input name="btn3" onClick="document.all.WebBrowser.ExecWB(4,1) " type="button" value="另存為">
<input name="btn4" onClick="document.all.WebBrowser.ExecWB(6,1) " type="button" value="列印">
<input name="btn5" onClick="document.all.WebBrowser.ExecWB(6,6) " type="button" value="直接列印">
<input name="btn6" onClick="document.all.WebBrowser.ExecWB(7,1) " type="button" value="列印預覽">
<input name="btn7" onClick="document.all.WebBrowser.ExecWB(8,1) " type="button" value="頁面設定">
<input name="btn8" onClick="document.all.WebBrowser.ExecWB(10,1)" type="button" value="屬性">
<input name="btn9" onClick="document.all.WebBrowser.ExecWB(17,1)" type="button" value="全選">
<input name="btna" onClick="document.all.WebBrowser.ExecWB(22,1)" type="button" value="重新整理">
<input name="btnb" onClick="document.all.WebBrowser.ExecWB(45,1)" type="button" value="關閉">
</body>
</html>
畫面測試
5. 關於安全性
WebBrowser控制元件雖然是IE內建的控制元件,但是因為它可能會直接操作客戶端印表機等操作,並不是預設啟用的,在安全性為預設的情況下。只有將使用該控制元件的站點設定為【信任】,該控制元件才可以使用。下圖在非信任的情況下,控制元件被阻止的畫面。