Repaired script tag handling so that attributes make it through

This commit is contained in:
kipp%netscape.com 1998-07-21 16:43:25 +00:00
Родитель 0062ef9fa3
Коммит adb61d9380
8 изменённых файлов: 30 добавлений и 28 удалений

Просмотреть файл

@ -627,7 +627,7 @@ nsresult CNavDTD::HandleStartToken(CToken* aToken) {
break;
case eHTMLTag_script:
result=HandleScriptToken(st); break;
result=HandleScriptToken(st, attrNode); break;
case eHTMLTag_head:
break; //ignore head tags...
@ -821,32 +821,32 @@ nsresult CNavDTD::HandleAttributeToken(CToken* aToken) {
* @param aToken -- next (start) token to be handled
* @return PR_TRUE if all went well; PR_FALSE if error occured
*/
nsresult CNavDTD::HandleScriptToken(CToken* aToken) {
nsresult CNavDTD::HandleScriptToken(CToken* aToken, nsCParserNode& aNode) {
NS_PRECONDITION(0!=aToken,kNullToken);
nsresult result=NS_OK;
PRInt32 pos=GetTopmostIndexOf(eHTMLTag_body);
nsCParserNode theNode((CHTMLToken*)aToken);
nsCParserNode attrNode((CHTMLToken*)aToken);
// nsCParserNode theNode((CHTMLToken*)aToken);
// nsCParserNode attrNode((CHTMLToken*)aToken);
PRInt32 attrCount=aToken->GetAttributeCount();
if (kNotFound == pos) {
// We're in the HEAD
result=OpenHead(theNode);
result=OpenHead(aNode);
if(NS_OK==result) {
mParser->CollectSkippedContent(attrNode,attrCount);
mParser->CollectSkippedContent(aNode,attrCount);
if(NS_OK==result) {
result=AddLeaf(attrNode);
result=AddLeaf(aNode);
if(NS_OK==result)
result=CloseHead(theNode);
result=CloseHead(aNode);
}
}
}
else {
// We're in the BODY
mParser->CollectSkippedContent(attrNode,attrCount);
mParser->CollectSkippedContent(aNode,attrCount);
if(NS_OK==result) {
result=AddLeaf(attrNode);
result=AddLeaf(aNode);
}
}

Просмотреть файл

@ -42,6 +42,7 @@
class nsIHTMLContentSink;
class nsIDTDDebug;
class nsIParserNode;
class nsCParserNode;
class CITokenHandler;
class nsParser;
@ -359,7 +360,7 @@ CLASS_EXPORT_HTMLPARS CNavDTD : public nsIDTD {
nsresult HandleCommentToken(CToken* aToken);
nsresult HandleSkippedContentToken(CToken* aToken);
nsresult HandleAttributeToken(CToken* aToken);
nsresult HandleScriptToken(CToken* aToken);
nsresult HandleScriptToken(CToken* aToken, nsCParserNode& aNode);
nsresult HandleStyleToken(CToken* aToken);

Просмотреть файл

@ -325,8 +325,8 @@ nsresult COtherDTD::HandleAttributeToken(CToken* aToken) {
* @param aToken -- next (start) token to be handled
* @return PR_TRUE if all went well; PR_FALSE if error occured
*/
nsresult COtherDTD::HandleScriptToken(CToken* aToken) {
return CNavDTD::HandleScriptToken(aToken);
nsresult COtherDTD::HandleScriptToken(CToken* aToken, nsCParserNode& aNode) {
return CNavDTD::HandleScriptToken(aToken, aNode);
}
/**

Просмотреть файл

@ -292,7 +292,7 @@ class COtherDTD : public CNavDTD {
* @param aToken is the script token to be handled
* @return TRUE if the token was handled.
*/
nsresult HandleScriptToken(CToken* aToken);
nsresult HandleScriptToken(CToken* aToken, nsCParserNode& aNode);
/**
* This method gets called when a style token has been consumed and needs

Просмотреть файл

@ -627,7 +627,7 @@ nsresult CNavDTD::HandleStartToken(CToken* aToken) {
break;
case eHTMLTag_script:
result=HandleScriptToken(st); break;
result=HandleScriptToken(st, attrNode); break;
case eHTMLTag_head:
break; //ignore head tags...
@ -821,32 +821,32 @@ nsresult CNavDTD::HandleAttributeToken(CToken* aToken) {
* @param aToken -- next (start) token to be handled
* @return PR_TRUE if all went well; PR_FALSE if error occured
*/
nsresult CNavDTD::HandleScriptToken(CToken* aToken) {
nsresult CNavDTD::HandleScriptToken(CToken* aToken, nsCParserNode& aNode) {
NS_PRECONDITION(0!=aToken,kNullToken);
nsresult result=NS_OK;
PRInt32 pos=GetTopmostIndexOf(eHTMLTag_body);
nsCParserNode theNode((CHTMLToken*)aToken);
nsCParserNode attrNode((CHTMLToken*)aToken);
// nsCParserNode theNode((CHTMLToken*)aToken);
// nsCParserNode attrNode((CHTMLToken*)aToken);
PRInt32 attrCount=aToken->GetAttributeCount();
if (kNotFound == pos) {
// We're in the HEAD
result=OpenHead(theNode);
result=OpenHead(aNode);
if(NS_OK==result) {
mParser->CollectSkippedContent(attrNode,attrCount);
mParser->CollectSkippedContent(aNode,attrCount);
if(NS_OK==result) {
result=AddLeaf(attrNode);
result=AddLeaf(aNode);
if(NS_OK==result)
result=CloseHead(theNode);
result=CloseHead(aNode);
}
}
}
else {
// We're in the BODY
mParser->CollectSkippedContent(attrNode,attrCount);
mParser->CollectSkippedContent(aNode,attrCount);
if(NS_OK==result) {
result=AddLeaf(attrNode);
result=AddLeaf(aNode);
}
}

Просмотреть файл

@ -42,6 +42,7 @@
class nsIHTMLContentSink;
class nsIDTDDebug;
class nsIParserNode;
class nsCParserNode;
class CITokenHandler;
class nsParser;
@ -359,7 +360,7 @@ CLASS_EXPORT_HTMLPARS CNavDTD : public nsIDTD {
nsresult HandleCommentToken(CToken* aToken);
nsresult HandleSkippedContentToken(CToken* aToken);
nsresult HandleAttributeToken(CToken* aToken);
nsresult HandleScriptToken(CToken* aToken);
nsresult HandleScriptToken(CToken* aToken, nsCParserNode& aNode);
nsresult HandleStyleToken(CToken* aToken);

Просмотреть файл

@ -325,8 +325,8 @@ nsresult COtherDTD::HandleAttributeToken(CToken* aToken) {
* @param aToken -- next (start) token to be handled
* @return PR_TRUE if all went well; PR_FALSE if error occured
*/
nsresult COtherDTD::HandleScriptToken(CToken* aToken) {
return CNavDTD::HandleScriptToken(aToken);
nsresult COtherDTD::HandleScriptToken(CToken* aToken, nsCParserNode& aNode) {
return CNavDTD::HandleScriptToken(aToken, aNode);
}
/**

Просмотреть файл

@ -292,7 +292,7 @@ class COtherDTD : public CNavDTD {
* @param aToken is the script token to be handled
* @return TRUE if the token was handled.
*/
nsresult HandleScriptToken(CToken* aToken);
nsresult HandleScriptToken(CToken* aToken, nsCParserNode& aNode);
/**
* This method gets called when a style token has been consumed and needs