Implemented nsHTMLDocument::SetBody

git-svn-id: svn://10.0.0.236/trunk@19635 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
vidur%netscape.com 1999-02-04 02:16:11 +00:00
parent b0dcd370b5
commit ca60bedc58
2 changed files with 74 additions and 4 deletions

View File

@ -1034,8 +1034,43 @@ nsHTMLDocument::GetBody(nsIDOMHTMLElement** aBody)
NS_IMETHODIMP
nsHTMLDocument::SetBody(nsIDOMHTMLElement* aBody)
{
//XXX TBI
return NS_ERROR_NOT_IMPLEMENTED;
nsresult result = NS_OK;
nsIDOMElement * root = nsnull;
result = GetDocumentElement(&root);
if (NS_OK != result) {
return result;
}
nsAutoString bodyStr("BODY");
nsIDOMNode * child;
root->GetFirstChild(&child);
while (child != nsnull) {
nsIDOMElement* domElement;
result = child->QueryInterface(kIDOMElementIID,(void **)&domElement);
if (NS_OK == result) {
nsString tagName;
domElement->GetTagName(tagName);
if (bodyStr.EqualsIgnoreCase(tagName)) {
nsIDOMNode* ret;
result = root->ReplaceChild(aBody, child, &ret);
NS_IF_RELEASE(ret);
NS_IF_RELEASE(mBodyContent);
NS_RELEASE(child);
NS_RELEASE(root);
NS_RELEASE(domElement);
return result;
}
NS_RELEASE(domElement);
}
nsIDOMNode * node = child;
NS_RELEASE(child);
node->GetNextSibling(&child);
}
NS_RELEASE(root);
return PR_FALSE;
}
NS_IMETHODIMP

View File

@ -1034,8 +1034,43 @@ nsHTMLDocument::GetBody(nsIDOMHTMLElement** aBody)
NS_IMETHODIMP
nsHTMLDocument::SetBody(nsIDOMHTMLElement* aBody)
{
//XXX TBI
return NS_ERROR_NOT_IMPLEMENTED;
nsresult result = NS_OK;
nsIDOMElement * root = nsnull;
result = GetDocumentElement(&root);
if (NS_OK != result) {
return result;
}
nsAutoString bodyStr("BODY");
nsIDOMNode * child;
root->GetFirstChild(&child);
while (child != nsnull) {
nsIDOMElement* domElement;
result = child->QueryInterface(kIDOMElementIID,(void **)&domElement);
if (NS_OK == result) {
nsString tagName;
domElement->GetTagName(tagName);
if (bodyStr.EqualsIgnoreCase(tagName)) {
nsIDOMNode* ret;
result = root->ReplaceChild(aBody, child, &ret);
NS_IF_RELEASE(ret);
NS_IF_RELEASE(mBodyContent);
NS_RELEASE(child);
NS_RELEASE(root);
NS_RELEASE(domElement);
return result;
}
NS_RELEASE(domElement);
}
nsIDOMNode * node = child;
NS_RELEASE(child);
node->GetNextSibling(&child);
}
NS_RELEASE(root);
return PR_FALSE;
}
NS_IMETHODIMP