1. 程式人生 > >通過WebBrowser控制元件,實現IE瀏覽器選單功能

通過WebBrowser控制元件,實現IE瀏覽器選單功能

這篇文章所講的技術,只支援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 引數(這些引數可以通過變數名知道對應選單上的功能,這裡不再逐個描述)

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 
3.2 nCmdExecOpt 引數(不知道如何的話,第二個引數使用1)
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內建的控制元件,但是因為它可能會直接操作客戶端印表機等操作,並不是預設啟用的,在安全性為預設的情況下。只有將使用該控制元件的站點設定為【信任】,該控制元件才可以使用。下圖在非信任的情況下,控制元件被阻止的畫面。