黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

利用webBrowser獲取框架內(nèi)Html頁面內(nèi)容

系統(tǒng) 2135 0

[轉(zhuǎn)自] http://hi.baidu.com/zonesky/blog/item/d8b89e1b66329ed3ac6e7517.html

利用 webBrowser 獲取頁面比較簡單,MSDN下有示例,在這里不必多說。
可是一些 HTML 文檔由“框架”構(gòu)成,或可以存放它們自己獨(dú)特 HTML 文檔的窗口。使用框架可以輕松地創(chuàng)建 HTML 頁面,其中一頁或多頁在其他框架持續(xù)更改它們內(nèi)容的同時保持靜態(tài),例如導(dǎo)航欄。

HTML 作者可以采用以下兩種方法之一創(chuàng)建框架:

  • 使用 FRAMESET FRAME 標(biāo)記,創(chuàng)建固定窗口。

- 或 -

  • 使用 IFRAME 標(biāo)記,創(chuàng)建可以在運(yùn)行時重新放置的浮動窗口。

  1. 因?yàn)榭蚣馨?HTML 文檔,它們在文檔對象模型 (DOM) 中表示為窗口元素和框架元素。

  2. 當(dāng)通過使用 HtmlWindow 的框架集合訪問 FRAME IFRAME 標(biāo)記時,也就是檢索對應(yīng)于此框架的窗口元素。這里指框架的所有動態(tài)屬性,例如它的當(dāng)前 URL、文檔和大小。

  3. 使用 HtmlWindow Children 集合或 GetElementsByName GetElementById 等方法的 WindowFrameElement 屬性訪問 FRAME IFRAME 標(biāo)記時,也就是在檢索框架元素。這里指框架的靜態(tài)屬性,包括原始 HTML 文件中指定的 URL。

框架和安全

對框架的訪問因?yàn)橥泄?HTML DOM 實(shí)施稱為“跨框架腳本撰寫安全”的安全措施的事實(shí)而比較復(fù)雜。如果文檔包含的 FRAMESET 中的兩個或多個 FRAME 在不同域中,這些 FRAME 互相之間不能交互。換言之,顯示網(wǎng)站內(nèi)容的 FRAME 無法訪問承載第三方站點(diǎn)(例如 http://www.adatum.com/)的 FRAME 中的信息。在 HtmlWindow 類級別實(shí)現(xiàn)這種安全。可以獲取關(guān)于承載另一個網(wǎng)站的 FRAME 的一般信息(例如它的 URL),但無法訪問它的 Document 或更改它的宿主 FRAME IFRAME 的大小或位置。

此規(guī)則也適用于使用 Open OpenNew 方法打開的窗口。如果您打開的窗口所在域不同于在 WebBrowser 控件中承載的頁面的域,您將無法移動該窗口或檢查它的內(nèi)容。當(dāng)您使用 WebBrowser 控件顯示一個與部署基于 Windows 窗體的應(yīng)用程序所用網(wǎng)站不同的網(wǎng)站時,也將強(qiáng)制執(zhí)行這些限制。如果使用 ClickOnce 部署技術(shù)從網(wǎng)站 A 安裝應(yīng)用程序,而使用 WebBrowser 顯示網(wǎng)站 B,您將無法訪問網(wǎng)站 B 的數(shù)據(jù)。

有關(guān)跨站點(diǎn)腳本撰寫的更多信息,請參見 About Cross- Frame Scripting and Security(關(guān)于跨框架腳本撰寫和安全) (http://msdn.microsoft.com/library/default.asp?url=/workshop/author/om/xframe_scripting_security.asp)。

請參見

其他資源
使用托管 HTML 文檔對象模型
FRAME 元素 | frame 對象

1.獲取 frame 的源文件

MessageBox.Show( webBrowser 1.Document.Window.Frames["main"].Document.Body.InnerHtml);

2.獲取 frame 的HTMLDocument接口

HTMLDocument doc = (HTMLDocument) webBrowser 1.Document.DomDocument;
object j;
for (int i = 0; i < doc.parentWindow.frames.length; i++)
{
?????? j = i;
?????? HTMLWindow2Class frame = doc.parentWindow.frames.item(ref j) as HTMLWindow2Class;
?????? if ( frame .name == "main")
??????? {???????????????????
????????????? MessageBox.Show( frame .document.title);????????????????????
??????? }
}?????

3.獲取 frame 的IHTMLDocument2接口

IHTMLDocument2 doc = (IHTMLDocument2) webBrowser 1.Document.Window.Frames["main"].Document.DomDocument;

4.取得 frame 中被點(diǎn)擊的連接

private void webBrowser 1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
????? string url = webBrowser 1.Document.Window.Frames["main"].Document.ActiveElement.GetAttribute("src");

利用webBrowser獲取框架內(nèi)Html頁面內(nèi)容


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論