2019年2月21日 星期四

CefSharp3 Multi Thread Add listen AddressChanged Event

原來使用的套件 Awesomium.NET 因為太久沒更新對於BootStrap4的支援已經跟不上了,所以選擇的替代方案是CefSharp3這個Open Source Core。

不意外的CefSharp3也是Chrome Base的可是導入在WIN AP上有完整的範例,版控更新上於GitHub也能看出他的活躍,總之這是要補紀錄在multi Thread增加EVENT的備忘,免得過段時間又忘記怎麼做。

首先增加要listen的FUNC
/// <summary>
/// 設定新分頁的url address變更的監聽
/// </summary>
private void setNewTab_addressCheangeEvent() {
            var control = GetCurrentTabControl();
            if (control != null)
            {
                control.Browser.AddressChanged += new EventHandler<AddressChangedEventArgs>(web_Auto_AddressChanged);
            }
}
//這個是把網址寫到指定的區域內
 private void web_Auto_AddressChanged(object sender, AddressChangedEventArgs e){
            SetTxt_Url(e.Address);
}

private delegate void str_Delegate(string str);
private void SetTxt_Url(string str) {
            if (InvokeRequired) {
                Invoke(new str_Delegate(SetTxt_Url), str);
                return;
            }
            TSL_url.Text = str;
}
接著於browserTabControl.TabPages.Add(tabPage); 之後加上 setNewTab_addressCheangeEvent();就會在每次新增的Tab都會去加入這EVENT的Listen。

這是以AddressChanged 觸發時的範例,其他的以此類推即可。

補充: 有趣的文章
JS處理修改URL但不跳轉的方法,在WEB POS接地氣上面來說對我幫助很大,節錄ing
var stateObj = { foo"bar" };
history.pushState(stateObj, """controler/function/variable");

沒有留言: