IHTMLDocument2

Endv發表於2016-10-20

 

 

 

 

  1  
  2 {IHTMLDocument2 方法:}
  3 write                 //寫入
  4 writeln               //寫入並換行
  5 open                  //開啟一個流,以收集 document.write 或 document.writeln 的輸出
  6 close                 //關閉並輸出用 document.open 方法開啟的流
  7 clear                 //清空文件中所有元素, 可能暫時不支援
  8 queryCommandSupported //是否支援指定命令
  9 queryCommandEnabled   //指定命令是否有效
 10 queryCommandState     //是否設定了指定命令
 11 queryCommandIndeterm  //指定命令是否處於不確定狀態
 12 queryCommandText      //命令
 13 queryCommandValue     //命令值
 14 execCommand           //執行命令
 15 execCommandShowHelp   //命令幫助資訊
 16 createElement         //建立元素
 17 elementFromPoint      //指定座標下的元素
 18 createStyleSheet      //建立一個樣式表
 19 
 20 {IHTMLDocument2 屬性:}
 21 all                   //所有 HTML 元素的集合
 22 images                //所有 image 物件的集合
 23 applets               //所有 applet 物件的集合
 24 links                 //所有 link 物件的集合
 25 forms                 //所有 form 物件的集合
 26 anchors               //所有 anchor 物件的集合
 27 scripts               //所有 script 物件的集合
 28 frames                //所有 frame 物件的集合, 這應該和 window.frames 是一樣的
 29 embeds                //所有 embed 物件的集合
 30 plugins               //所有 plugin 物件的集合
 31 styleSheets           //樣式表集合
 32 title                 //網頁標題
 33 body                  //body 物件
 34 activeElement         //當前具有輸入焦點的元素
 35 designMode            //設計模式, 可選值: Inherit On Off
 36 selection             //當前選擇
 37 readyState            //頁面讀取狀態: uninitialized、loading、loaded、interactive、completed
 38 linkColor             //連結的顏色
 39 alinkColor            //活動連結的顏色
 40 vlinkColor            //已訪問過的連結的顏色
 41 bgColor               //背景顏色
 42 fgColor               //文字顏色
 43 referrer              //返回載入當前頁面的頁面的 URL
 44 location              //同 window.location
 45 lastModified          //返回文件最後修改的日期和時間
 46 url                   //返回當前文件的 URL
 47 domain                //返回域名
 48 cookie                //返回文件相關的 cookie
 49 expando               //可設定與獲取的布林值, 是否允許擴充套件
 50 charset               //獲取文件的字符集名稱
 51 defaultCharset        //獲取瀏覽器預設的字符集名稱
 52 mimeType              //文件型別
 53 fileSize              //文件大小, 單位位元組, 用字串表示
 54 fileCreatedDate       //文件建立時間 ???
 55 fileModifiedDate      //文件修改時間 ???
 56 fileUpdatedDate       //文件更新時間 ???
 57 security              //文件安全
 58 protocol              //傳輸協議
 59 nameProp              //檔案標題, 好像同 Title
 60 parentWindow          //父視窗
 61 Script                //
 62 
 63 {IHTMLDocument2 事件:}
 64 onhelp                //用 F1 獲取幫助時
 65 onclick               //單擊時
 66 ondblclick            //雙擊時
 67 onmousedown           //滑鼠點下時
 68 onmouseup             //滑鼠抬起時
 69 onmousemove           //滑鼠移動時
 70 onmouseover           //滑鼠進入時
 71 onmouseout            //滑鼠離開時
 72 onkeypress            //按鍵時
 73 onkeyup               //鍵按住時
 74 onkeydown             //鍵抬起時
 75 onreadystatechange    //狀態改變時
 76 onrowexit             //當前資料來源的資料將要發生變化時
 77 onrowenter            //當前資料來源的資料發生變化並且有新的資料時
 78 ondragstart           //開始拖動時
 79 onselectstart         //開始選擇時
 80 onbeforeupdate        //更新前
 81 onafterupdate         //更新後
 82 onerrorupdate         //更新錯誤時
 83 
 84 
 85 {IHTMLDocument3 方法:}
 86 recalc                //重新獲取文件中的全部動態屬性
 87 releaseCapture        //釋放文件中物件的滑鼠捕捉
 88 
 89 {IHTMLDocument3 屬性:}
 90 createTextNode        //建立文字
 91 attachEvent           //繫結事件
 92 detachEvent           //取消事件繫結
 93 createDocumentFragment//建立新文件
 94 getElementsByName     //返回帶有指定 name 的物件集合
 95 getElementById        //返回指定 id 的第一個物件的引用
 96 getElementsByTagName  //返回指定標籤的物件集合
 97 documentElement       //獲取文件根部節點, 也就是 HTML 節點
 98 uniqueID              //獲取物件的唯一識別符號
 99 dir                   //
100 parentDocument        //
101 enableDownload
102 baseUrl               //基礎地址
103 
104 {IHTMLDocument3 事件:}
105 onrowsdelete          //當前資料記錄被刪除時
106 onrowsinserted        //當前資料來源將要插入新資料時
107 oncellchange          //當資料來源發生變化時
108 ondatasetchanged      //資料來源發生變化時
109 ondataavailable       //當資料接收完成時
110 ondatasetcomplete     //當資料來源的全部有效資料讀取完畢時
111 onpropertychange      //改變屬性時
112 oncontextmenu         //當按下滑鼠右鍵出現選單或通過鍵盤觸發頁面選單時
113 onstop                //停止或離開時
114 
115 
116 {IHTMLDocument4 方法:}
117 focus                 //獲得輸入焦點
118 hasFocus              //是否擁有輸入焦點
119 createDocumentFromUrl //下載指定網頁並返回其 IHTMLDocument2 介面
120 CreateEventObject     //生成當使用 fireEvent 方法時用於傳遞事件相關資訊的 event 物件 ???
121 FireEvent
122 
123 {IHTMLDocument4 屬性:}
124 createRenderStyle     //建立 IHTMLRenderStyle 介面
125 namespaces            //
126 media                 //
127 URLUnencoded          //獲取去除字元編碼的 URL
128 
129 {IHTMLDocument4 事件:}
130 onselectionchange     //改變選擇時
131 oncontrolselect       //好像是框選時
132 
133 
134 {IHTMLDocument5 方法:}
135 createAttribute       //建立指定 name 的屬性
136 createComment         //建立註釋
137 
138 {IHTMLDocument5 屬性:}
139 doctype               //文件型別
140 implementation_       //獲取 IHTMLDOMImplementation 介面
141 compatMode            //相容模式, 返回 BackCompat、CSS1Compat 等
142 
143 {IHTMLDocument5 事件:}
144 onmousewheel          //旋轉滑鼠滾動輪時
145 onfocusin             //獲取輸入焦點時
146 onfocusout            //失去輸入焦點時
147 onactivate            //啟用時
148 ondeactivate          //當前物件變為父文件的其他物件時
149 onbeforeactivate      //onactivate 前
150 onbeforedeactivate    //ondeactivate 前 
151 
152 Ihtmldocument2介面的使用 
153 MSHTML是微軟公司的一個COM元件,該元件封裝了HTML語言中的所有元素及其屬性,通過其提供的標準介面,可以訪問指定網頁的所有元素.
154   MSHTML物件模型是由一些物件和集合組成的.處於根部的是HTML,描述了開啟頁面的1個視窗,包括一系列集合和物件。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event物件等.其中描述呈現在客戶視窗實際網頁的是Document物件。由一系列的屬性、方法、物件和集合組成.其中All集合中包含網頁中所有標記(Tag)元素,其主要的方法和屬性有:
155   (1)Length(長度):即標記出現的個數,可以把標記的集合理解為從0開始的一維陣列,其次序按照標記在網頁位置排列;
156   (2)Tags(標記):用於過濾出給定標記的集合,如Doc.Al1.Tags(P)得到所有分段標記P;
157   (3)Item(專案):用於選擇集合中的某1個元素,如object.item(0)得到集合的第1個元素,而object.item(i)得到第i+1個元素.
158   此外,IHTMLElement也是個常用的集合物件,代表網頁中指定標記的集合,通過這個集合物件,可以得到網頁上特定標記的內容.IHTMLElement有4個主要屬性:
159   (1)InnerText:開始標記和結束標記之間的文字;
160   (2)InnerHTML:開始標記和結束標記之間的文字和HTML;
161   (3)OuterText:物件的文字;
162   (4)OuterHTML:物件的文字和HTML.
163 注意:使用前加入單元mshtml
164 演示表單提交
165 procedure TForm1.Button1Click(Sender: TObject);
166 var
167 Doc:IHTMLDocument2;
168 input:OleVariant;
169 userinputelement,pwdinputelement:ihtmlinputelement;
170 begin
171 doc:=webbrowser1.document as ihtmldocument2;
172 userinputelement:=(doc.all.item('user'(也就是網頁中使用者名稱控制元件的名字),0) as ihtmlinputelement);
173 userinputelement.value:=edit1.text;(也就是你要向網頁輸入的東西)
174 pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
175 pwdinputelement.value:=edit2.text;
176 input:=doc.all.item('submit',0);
177 input.click;
178 end;
179 當提交資料按鈕沒有NAME屬性時,採用如下方法:
180 procedure TForm1.Button1Click(Sender: TObject);
181 var
182 Doc:IHTMLDocument2;
183 form:ithmlformelement;
184 userinputelement,pwdinputelement:ihtmlinputelement;
185 begin
186 doc:=webbrowser1.document as ihtmldocument2;
187 userinputelement:=(doc.all.item('user'(也就是網頁中使用者名稱控制元件的名字),0) as ihtmlinputelement);
188 userinputelement.value:=edit1.text;(也就是你要向網頁輸入的東西)
189 pwdinputelement:=(doc.all.item('password',0) as ihtmlinputelement);
190 pwdinputelement:=edit2.text;
191 form:=(doc.all.item('login_form',0) as ihtmlformelement):
192 form.submit;
193 end;
194 登入"按鈕一般都是網頁中預設的回車按鈕,所以可以用上面程式碼來代替前面的點選按鈕
195 讀取某網頁內容
196 在建立窗體的時候開啟一網頁
197 
198 webbrowser1.navigate('http://www.baidu.com')
199 procedure TForm1.Button1Click(Sender: TObject);
200 begin
201 memo1.lines.add(ihtmldocument2(webbrowser1.document).body.outerhtml);
202 end;
203 
204 這樣一來memo1中顯示www.baidu.com的html
205 利用webbrowser1控制元件瀏覽某txt中檔案的內容,並以html形式來顯示出來
206 在webbrowser1的控制元件中的ondocumentcomplete事件加入如下程式碼
207 procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
208 const pDisp: IDispatch; var URL: OleVariant);
209 var
210 webdoc:htmldocument ;
211 webbody:htmlbody;
212 begin
213 webdoc:=webbrowser1.document as htmldocument;
214 webbody:=webdoc.body as htmlbody;
215 webbody.insertAdjacentHTML('beforeend','<form method="POST" action="">');
216 webbody.insertAdjacentHTML('beforeend','Password: ');
217 webbody.insertAdjacentHTML('beforeend','<input type="password" >');
218 webbody.insertAdjacentHTML('beforeend','<input type="submit" value="LOGIN" >');
219 webbody.insertAdjacentHTML('beforeend',' ');
220 webbody.insertAdjacentHTML('beforeend','</form>');
221 end;
222 
223 
224 讀取的時候,webbrowser控制元件得要完整的開啟某一網頁,

 

  1 document.execCommand()方法處理Html資料時常用語法格式 如下:
  2 複製內容到剪貼簿 
  3 程式碼 :
  4 document.execCommand(sCommand[,互動方式, 動態引數 ]) 
  5 其中:sCommand為指令引數(如下例中的"2D-Position"),互動方式引數如果是true的話將顯示對話方塊,如果為false的話,則不顯示對話方塊(下例中的"false"即表示不顯示對話方塊),動態引數一般為一可用值或屬性 值(如下例中的"true")。 
  6 
  7 document.execCommand("2D-Position","false","true"); 
  8 
  9 
 10 呼叫execCommand()可以實現瀏覽器選單 的很多功能. 如儲存檔案 ,開啟新檔案,撤消、重做操作...等等. 有了這個方法,就可以很容易的實現網頁中的文字編輯器. 
 11 
 12 如果靈活運用,可以很好的輔助我們完成各種專案. 
 13 
 14 使用的例子如下: 
 15 
 16 
 17 1、〖全選〗命令的實現 
 18 [格式]:document.execCommand("selectAll")
 19 [說明]將選種網頁中的全部內容!
 20 [舉例]在<body></body>之間加入:
 21 <a href="#" onclick=document.execCommand("selectAll")>全選</a> 
 22 
 23 2、〖開啟〗命令的實現
 24 [格式]:document.execCommand("open")
 25 [說明]這跟VB等程式設計設計中的web browser控制元件中的命令有些相似,大家也可依此琢磨琢磨。
 26 [舉例]在<body></body>之間加入:
 27 <a href="#" onclick=document.execCommand("open")>開啟</a>
 28 
 29 3、〖另存為〗命令的實現 
 30 [格式]:document.execCommand("saveAs")
 31 [說明]將該網頁儲存到本地盤的其它目錄!
 32 [舉例]在<body></body>之間加入:
 33 <a href="#" onclick=document.execCommand("saveAs")>另存為</a>
 34 
 35 4、〖列印〗命令的實現 
 36 [格式]:document.execCommand("print")
 37 [說明]當然,你必須裝了印表機!
 38 [舉例]在<body></body>之間加入:
 39 <a href="#" onclick=document.execCommand("print")>列印</a>
 40 
 41 Js程式碼  下面列出的是指令引數及意義
 42 
 43 //相當於單擊檔案中的開啟按鈕 
 44 document.execCommand("Open"); 
 45   
 46 //將當前頁面 另存為 
 47 document.execCommand("SaveAs"); 
 48   
 49 //剪貼選中的文字到剪貼簿; 
 50 document.execCommand("Cut","false",null); 
 51   
 52 //刪除選中的文字; 
 53 document.execCommand("Delete","false",null); 
 54   
 55 //改變選中區域的字型; 
 56 document.execCommand("FontName","false",sFontName); 
 57   
 58 //改變選中區域的字型大小; 
 59 document.execCommand("FontSize","false",sSize|iSize); 
 60   
 61 //設定前景顏色; 
 62 document.execCommand("ForeColor","false",sColor); 
 63   
 64 //使絕對定位的物件可直接拖動; 
 65 document.execCommand("2D-Position","false","true"); 
 66   
 67 //使物件定位變成絕對定位; 
 68 document.execCommand("AbsolutePosition","false","true"); 
 69   
 70 //設定背景顏色; 
 71 document.execCommand("BackColor","false",sColor); 
 72   
 73 //使選中區域的文字加粗; 
 74 document.execCommand("Bold","false",null); 
 75   
 76 //複製選中的文字到剪貼簿; 
 77 document.execCommand("Copy","false",null); 
 78   
 79 //設定指定錨點為書籤; 
 80 document.execCommand("CreateBookmark","false",sAnchorName); 
 81   
 82 //將選中文 本變成超連線,若第二個引數為true,會出現引數設定對話方塊; 
 83 document.execCommand("CreateLink","false",sLinkURL); 
 84   
 85 //設定當前塊的標籤名; 
 86 document.execCommand("FormatBlock","false",sTagName);  
 87 
 88 //相當於單擊檔案中的開啟按鈕
 89 document.execCommand("Open");
 90 
 91 //將當前頁面另存為
 92 document.execCommand("SaveAs");
 93 
 94 //剪貼選中的文字到剪貼簿;
 95 document.execCommand("Cut","false",null);
 96 
 97 //刪除選中的文字;
 98 document.execCommand("Delete","false",null); 
 99 
100 //改變選中區域的字型;
101 document.execCommand("FontName","false",sFontName); 
102 
103 //改變選中區域的字型大小;
104 document.execCommand("FontSize","false",sSize|iSize); 
105 
106 //設定前景顏色;
107 document.execCommand("ForeColor","false",sColor);
108 
109 //使絕對定位的物件可直接拖動; 
110 document.execCommand("2D-Position","false","true");
111 
112 //使物件定位變成絕對定位; 
113 document.execCommand("AbsolutePosition","false","true");
114 
115 //設定背景顏色;
116 document.execCommand("BackColor","false",sColor);
117 
118 //使選中區域的文字加粗;
119 document.execCommand("Bold","false",null);
120 
121 //複製選中的文字到剪貼簿;
122 document.execCommand("Copy","false",null);
123 
124 //設定指定錨點為書籤;
125 document.execCommand("CreateBookmark","false",sAnchorName);
126 
127 //將選中文字變成超連線,若第二個引數為true,會出現引數設定對話方塊;
128 document.execCommand("CreateLink","false",sLinkURL);
129 
130 //設定當前塊的標籤名;
131 document.execCommand("FormatBlock","false",sTagName);
132 document物件execCommand通常在IE中線上處理Html資料時非常有用,它可以讓你輕而易舉實現文字的加粗、加顏色、加字型等一系列的命令。
133     D-Position 允許通過拖曳移動絕對定位的物件。 
134     AbsolutePosition 設定元素的 position 屬性為“absolute”(絕對)。 
135     BackColor 設定或獲取當前選中區的背景顏色。 
136     BlockDirLTR 目前尚未支援。 
137     BlockDirRTL 目前尚未支援。 
138     Bold 切換當前選中區的粗體顯示與否。 
139     BrowseMode 目前尚未支援。 
140     Copy 將當前選中區複製到剪貼簿。 
141     CreateBookmark 建立一個書籤錨或獲取當前選中區或插入點的書籤錨的名稱。 
142     CreateLink 在當前選中區上插入超級連結,或顯示一個對話方塊允許使用者指定要為當前選中區插入的超級連結的 URL。 
143     Cut 將當前選中區複製到剪貼簿並刪除之。 
144     Delete 刪除當前選中區。 
145     DirLTR 目前尚未支援。 
146     DirRTL 目前尚未支援。 
147     EditMode 目前尚未支援。 
148     FontName 設定或獲取當前選中區的字型。 
149     FontSize 設定或獲取當前選中區的字型大小。 
150     ForeColor 設定或獲取當前選中區的前景(文字)顏色。 
151     FormatBlock 設定當前塊格式化標籤。 
152     Indent 增加選中文字的縮排。 
153     InlineDirLTR 目前尚未支援。 
154     InlineDirRTL 目前尚未支援。 
155     InsertButton 用按鈕控制元件覆蓋當前選中區。 
156     InsertFieldset 用方框覆蓋當前選中區。 
157     InsertHorizontalRule 用水平線覆蓋當前選中區。 
158     InsertIFrame 用內嵌框架覆蓋當前選中區。 
159     InsertImage 用影象覆蓋當前選中區。 
160     InsertInputButton 用按鈕控制元件覆蓋當前選中區。 
161     InsertInputCheckbox 用核取方塊控制元件覆蓋當前選中區。 
162     InsertInputFileUpload 用檔案上載控制元件覆蓋當前選中區。 
163     InsertInputHidden 插入隱藏控制元件覆蓋當前選中區。 
164     InsertInputImage 用影象控制元件覆蓋當前選中區。 
165     InsertInputPassword 用密碼控制元件覆蓋當前選中區。 
166     InsertInputRadio 用單選鈕控制元件覆蓋當前選中區。 
167     InsertInputReset 用重置控制元件覆蓋當前選中區。 
168     InsertInputSubmit 用提交控制元件覆蓋當前選中區。 
169     InsertInputText 用文字控制元件覆蓋當前選中區。 
170     InsertMarquee 用空字幕覆蓋當前選中區。 
171    InsertOrderedList 切換當前選中區是編號列表還是常規格式化塊。 
172     InsertParagraph 用換行覆蓋當前選中區。 
173     InsertSelectDropdown 用下拉框控制元件覆蓋當前選中區。 
174     InsertSelectListbox 用列表框控制元件覆蓋當前選中區。 
175     InsertTextArea 用多行文字輸入控制元件覆蓋當前選中區。 
176     InsertUnorderedList 切換當前選中區是專案符號列表還是常規格式化塊。 
177     Italic 切換當前選中區斜體顯示與否。 
178     JustifyCenter 將當前選中區在所在格式化塊置中。 
179     JustifyFull 目前尚未支援。 
180     JustifyLeft 將當前選中區所在格式化塊左對齊。 
181     JustifyNone 目前尚未支援。 
182     JustifyRight 將當前選中區所在格式化塊右對齊。 
183     LiveResize 迫使 MSHTML 編輯器在縮放或移動過程中持續更新元素外觀,而不是隻在移動或縮放完成後更新。 
184     MultipleSelection 允許當使用者按住 Shift 或 Ctrl 鍵時一次選中多於一個站點可選元素。 
185     Open 目前尚未支援。 
186     Outdent 減少選中區所在格式化塊的縮排。 
187     OverWrite 切換文字狀態的插入和覆蓋。 
188     Paste 用剪貼簿內容覆蓋當前選中區。 
189     PlayImage 目前尚未支援。 
190     Print 開啟列印對話方塊以便使用者可以列印當前頁。 
191     Redo 目前尚未支援。 
192     Refresh 重新整理當前文件。 
193     RemoveFormat 從當前選中區中刪除格式化標籤。 
194     RemoveParaFormat 目前尚未支援。 
195     SaveAs 將當前 Web 頁面儲存為檔案。 
196     SelectAll 選中整個文件。 
197     SizeToControl 目前尚未支援。 
198     SizeToControlHeight 目前尚未支援。 
199     SizeToControlWidth 目前尚未支援。 
200     Stop 目前尚未支援。 
201     StopImage 目前尚未支援。 
202     StrikeThrough 目前尚未支援。 
203     Subscript 目前尚未支援。 
204     Superscript 目前尚未支援。 
205     UnBookmark 從當前選中區中刪除全部書籤。 
206     Underline 切換當前選中區的下劃線顯示與否。 
207     Undo 目前尚未支援。 
208     Unlink 從當前選中區中刪除全部超級連結。 
209     Unselect 清除當前選中區的選中狀態。
210  
211  
212 關於document.execCommand:   
213           要執行編輯命令,可呼叫   document.execCommand,並傳遞對應於命令   ID   的字串。另外還有可選的第二個引數 ,該引數指定如果可以應用的話是否顯示此命令的使用者介面。傳遞整數   1   將顯示使用者介面,整數   0   將跳過它。這個引數通常不用於編輯命令。因為預設值為   0,所以假如您沒有使用第三個引數(在這種情況下,還必須為第二個引數傳遞值),一般可以不管它。第三個引數也是可選的, 在可應用的情況下,使用它來將任何所需引數傳遞給該命令。