監聽webbrowser內容改變

2021-08-30 15:59:47 字數 1330 閱讀 2897

論壇上一位朋友發貼想實現這樣功能:在webbrowser(編輯狀態)中輸入@,然後能捕獲隨後輸入的幾個字元。貼子見:

監聽鍵盤事件有兩個缺陷:

1.它只能監聽到ascii字元,如果輸入漢字則不響應。

2.事件發生時,字元還未真正出現在webbrowser中。

解決方法首先是實現ihtmlchangesink介面,這樣webbrowser中內容一發生改變,我們立刻就能收到通知。

需要引用mshtml,引用該dll的方法及注意事項:

主要**:

using system;

using system.collections.generic;

using system.text;

using system.windows.forms;

using system.runtime.interopservices;

#region for htmleditor textchanged

// always monitor

private mshtml.imarkupcontainer2 getmarkupcontainer()

// only one monitor

private mshtml.imarkupcontainer2 getmarkupcontainer2()

public void monitortextchangedalways()

public void stopmonitortextchanged()

}#endregion

#region implement inte***ce

public void notify()

}#endregion

}}

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using mshtml;

private void form1_load(object sender, eventargs e)

void form1_formclosing(object sender, formclosingeventargs e)

void m_htmleditorevent(object sender, eventargs e)}}

}}

WebBrowser控制項頁面內容放大 縮小功能實現

在開發winform程式中的webbrowser控制項時想要實現頁面內容放大 縮小功能,由於ie版本問題,webbrowser中沒有ctrl 滾輪實現放大 縮小頁面內容的功能,只能自己實現了。實現具體 如下 1。在引用中引用com元件microsoft internet controls。2.放大 ...

監控 WebBrowser 控制項內容的改變

今天的收穫只有一項,那就是這個啦。呵呵,主要的就是用到mshtml.ihtmlchangesink 中的 notify方法觸發自定義的事件,具體的 我也不懂,嘿嘿 這些都是從 東西市 copy 來的,亂的成粥了。幾點核心 public class monitor mshtml.ihtmlchange...

WebBrowser控制項跨域訪問頁面內容

原文出處 原始碼出處 原作者的部落格 現整理 經過一天的折騰發現最後還是ie策略給限制了跨域訪問,之前使用程式設計的辦法和植入script 的辦法,都是拒絕訪問的。不過現在用了下邊的方法就可以解決了,也不多。dll和 均在工程檔案裡 注意,需要手動引用 interop.shdocvw.dll,和.n...