HTMLEditor類常用事件說明

來源:互聯網
上載者:User

標籤:des   style   blog   io   color   os   ar   for   sp   

1、HtmlEvent 事件:Html元素事件,HtmlEditor將容器內HTML中的所有事件統一冒泡到此事件中進行處理。在此事件的處理函數中可根據不同的事件類型進行不同的業務處理。

eg:

  /// <summary>        /// 編輯器Html事件處理函數        /// </summary>        /// <param name="s"></param>        /// <param name="e"></param>        private void HtmlDesignEditorHtmlEvent(object s, HtmlEventArgs e)        {            if (e.Event == null)            {                return;            }            var sEventType = e.Event.EventType.ToLower();            var isNeedToDealEvent = IsNeedToDealEvent(e);            if (isNeedToDealEvent)            {                switch (sEventType)                {                    case "controlselect":                        //_udfSelectedControl = e.Event.SrcElement;                        break;                    case "beforeeditfocus":                        if (e.Event.SrcElement.tagName.ToLower() != "body")                        {                            e.Event.ReturnValue = false;                            e.Event.CancelBubble = true;                        }                        break;                    case "click":                        {                            e.Event.ReturnValue = false;                            e.Event.CancelBubble = true;                        }                        break;                    case "drop":                        //DoDropEvent                        DoDropEvent(e);                        break;                    case "dragover":                        //DoDragOverEvent                        break;                    case "dragend":                        //DoDragEndEvent                        DoDragEndEvent(e);                        break;                    case "dragenter":                        //DoDragEnter                        DoDragEnterEvent(e);                        break;                    case "mouseover":                        //DoMouseOverEvent                        DoMouseOverEvent(e);                        break;                    case "mousemove":                        //DoMouseMove                        DoMouseMoveEvent(e);                        break;                    case "mousedown":                        //DoMouseDown                        MultiMouseDownEvent(e);                        DoMouseDownEvent(e);                        break;                    case "mouseout":                        //DoMouseOut                        DoMouseOutEvent(e);                        break;                    case "mouseup":                        //DoMouseUp                        DoMouseUpEvent(e);                        break;                    case "mousewheel":                        //DoMouseWheel                        DoMouseWheelEvent(e);                        break;                    case "resizeend":                        DoResizeEndEvent(e);                        break;                    case "resizestart":                        DoResizeStartEvent(e);                        break;                    case "keydown":                        break;                    case "dblclick":                        DoDblClickEvent(e);                        break;                    default:                        DoFinish(e);                        break;                }            }        }

2、ContentChanged  事件:容器內容改變事件,此事件將會在容器內容更改後觸發

 /// <summary>        /// HTML編輯器內容改變事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void HtmlDesignEditorContentChanged(object sender, EventArgs e)        {            if (_isDoDragEnd || _isChangeHtml)            {                _behaviorManage.Clear();                _behaviorManage.AddTableBehavior(htmlDesignEditor.DocumentHTML);                _behaviorManage.AddToolTipBehavior(htmlDesignEditor.DocumentHTML);                _behaviorManage.AddDateTimeBehavior(htmlDesignEditor.DocumentHTML);                _isChangeHtml = false;                _isDoDragEnd = false;            }            FindViewControls();        }

3、BeforePaste 事件:內容粘貼前事件,此事件將在使用者進行粘貼操作前觸發,在此事件中可對粘貼的內容進行過濾整理,如處理從Word過來的資料,Excel過來的資料,清除吊不必要的內容等。

   /// <summary>        /// HTML編輯器進行粘貼操作前處理函數,此事件可對需要粘貼的資料進行預先處理        /// </summary>        /// <param name="s"></param>        /// <param name="e"></param>        private void HtmlDesignEditorBeforePaste(object s, BeforePasteArgs e)        {            if (Clipboard.ContainsText(TextDataFormat.Html))            {                e.Cancel = true;                MemoryStream memoryStream = Clipboard.GetData("Html Format") as MemoryStream;                if (memoryStream == null)                {                    return;                }                memoryStream.Position = 0;                var vBytes = new byte[memoryStream.Length];                memoryStream.Read(vBytes, 0, (int) memoryStream.Length);                var sText = Encoding.UTF8.GetString(vBytes);                IHTMLDocument2 doc = this.htmlDesignEditor.HtmlDocument2;                IHTMLTxtRange sel = doc.GetSelection().createRange() as IHTMLTxtRange;                var controlSel = doc.GetSelection().createRange() as IHTMLControlRange;                var length = controlSel.GetLength();                for (int i = 0; i < length;i++ )                {                    var control = controlSel.Item(i);                }                    if (sel == null)                    {                        return;                    }                var html = _coolPf.CreateHtml(sText);                sel.pasteHTML(html);                //idManager.AdjustmentElementID(Me.contentEditor.HtmlDocument2)                //  behaviorManage.AddTableBehavior(contentEditor.DocumentHTML);                IHTMLElementCollection elList = this.htmlDesignEditor.DocumentHTML.GetElementsByTagName("TABLE");                foreach (IHTMLElement el in elList)                {                    el.SetAttribute("height", el.offsetHeight, 0);                }                elList = this.htmlDesignEditor.DocumentHTML.GetElementsByTagName("TR");                foreach (IHTMLElement el in elList)                {                    el.SetAttribute("height", el.offsetHeight, 0);                }            }        }

3、BeforeNavigate 事件,頁面導航前事件,此事件將在頁面進行導航跳轉前觸發,可在此事件中進行阻止跳轉。

 

HTMLEditor類常用事件說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.