void HTMLElement::insertAdjacentHTML(const String& where, const String& markup, ExceptionCode& ec) { Element* contextElement = contextElementForInsertion(where, this, ec); if (!contextElement) return; RefPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(markup, contextElement, AllowScriptingContent, ec); if (!fragment) return; insertAdjacent(where, fragment.get(), ec); }
Element* HTMLElement::insertAdjacentElement(const String& where, Element* newChild, ExceptionState& exceptionState) { if (!newChild) { // IE throws COM Exception E_INVALIDARG; this is the best DOM exception alternative. exceptionState.throwTypeError("The node provided is null."); return 0; } Node* returnValue = insertAdjacent(where, newChild, exceptionState); return toElement(returnValue); }
Element* HTMLElement::insertAdjacentElement(const String& where, Element* newChild, ExceptionState& es) { if (!newChild) { // IE throws COM Exception E_INVALIDARG; this is the best DOM exception alternative. es.throwDOMException(TypeMismatchError); return 0; } Node* returnValue = insertAdjacent(where, newChild, es); return toElement(returnValue); }
Element* HTMLElement::insertAdjacentElement(const String& where, Element* newChild, ExceptionCode& ec) { if (!newChild) { // IE throws COM Exception E_INVALIDARG; this is the best DOM exception alternative ec = TYPE_MISMATCH_ERR; return 0; } Node* returnValue = insertAdjacent(where, newChild, ec); ASSERT(!returnValue || returnValue->isElementNode()); return static_cast<Element*>(returnValue); }
void HTMLElement::insertAdjacentHTML(const String& where, const String& html, ExceptionCode& ec) { RefPtr<DocumentFragment> fragment = document()->createDocumentFragment(); if (document()->isHTMLDocument()) parseHTMLDocumentFragment(html, fragment.get()); else { if (!parseXMLDocumentFragment(html, fragment.get(), this)) // FIXME: We should propagate a syntax error exception out here. return; } insertAdjacent(where, fragment.get(), ec); }
void HTMLElement::insertAdjacentText(const String& where, const String& text, ExceptionCode& ec) { RefPtr<Text> textNode = document()->createTextNode(text); insertAdjacent(where, textNode.get(), ec); }