private void _param_OnClearHandler() { Interop.IHTMLElement objectElement = (Interop.IHTMLElement)base.GetBaseElement(); Interop.IHTMLDOMNode Node = (Interop.IHTMLDOMNode)objectElement; Interop.IHTMLDOMChildrenCollection param = (Interop.IHTMLDOMChildrenCollection)((Interop.IHTMLDOMNode)Node).childNodes; for (int i = 0; i < param.length; i++) { Interop.IHTMLDOMNode el = (Interop.IHTMLDOMNode)param.item(0); Node.removeChild(el); } }
public new void RemoveAt(int index, object o) { if (o == null) { return; } base.InnerList.Remove(o); Interop.IHTMLDOMChildrenCollection param = (Interop.IHTMLDOMChildrenCollection)((Interop.IHTMLDOMNode)objectElement).childNodes; for (int i = 0; i < param.length; i++) { Interop.IHTMLElement el = (Interop.IHTMLElement)param.item(0); if (index == i) { Interop.IHTMLDOMNode no = (Interop.IHTMLDOMNode)el; no.removeNode(true); } } }
private void SynchParams(Interop.IHTMLElement peer) { _params.Clear(); Interop.IHTMLDOMChildrenCollection param = (Interop.IHTMLDOMChildrenCollection)((Interop.IHTMLDOMNode)peer).childNodes; for (int i = 0; i < param.length; i++) { Interop.IHTMLElement el = (Interop.IHTMLElement)param.item(0); // current is always on pos 0, access reorders list object pe = null; switch (el.GetTagName()) { case "PARAM": pe = new ParamElement(el, HtmlEditor); break; } if (pe != null) { _params.Add(pe); } } }
/// <summary> /// Returns the direct descendent children elements. /// </summary> /// <remarks> /// Does not returns any text nodes between the elements. They are stripped out from DOM tree before building the collection. /// </remarks> /// <returns></returns> public ElementCollection GetChildNodes() { Interop.IHTMLDOMChildrenCollection children = (Interop.IHTMLDOMChildrenCollection)node.childNodes; ElementCollection ec = new ElementCollection(); int length = children.length; for (int i = 0; i < length; i++) { Interop.IHTMLDOMNode element = children.item(i) as Interop.IHTMLDOMNode; if (element != null && element != node) { if (element.nodeName.Equals("#text")) { continue; } ec.Add(this.htmlEditor.GenericElementFactory.CreateElement(element as Interop.IHTMLElement)); } } return(ec); }
private static void LoopNodes(Interop.IHTMLDOMNode node, Interop.IHTMLDOMNode targetNode, Interop.IHTMLDocument2 targetDoc) { while (node != null) { if (node.nodeName == "#text") { ((Interop.IHTMLElement)targetNode).InsertAdjacentHTML("BeforeEnd", node.nodeValue.ToString()); } else { string elementName; if (((Interop.IHTMLElement2)node).GetScopeName() == "HTML") { elementName = ((Interop.IHTMLElement)node).GetTagName(); } else { elementName = String.Format("{0}:{1}", ((Interop.IHTMLElement2)node).GetScopeName(), ((Interop.IHTMLElement)node).GetTagName()); } Interop.IHTMLElement clone = targetDoc.CreateElement(elementName); ((Interop.IHTMLElement3)clone).mergeAttributes(((Interop.IHTMLElement)node), 0); if (node.hasChildNodes()) { Interop.IHTMLDOMChildrenCollection children = node.childNodes as Interop.IHTMLDOMChildrenCollection; if (children != null) { for (int i = 0; i < children.length; i++) { Interop.IHTMLDOMNode child = (Interop.IHTMLDOMNode)children.item(i); LoopNodes(child, (Interop.IHTMLDOMNode)clone, targetDoc); } } } } node = node.nextSibling; } }