如何在VC中使用IHTMLDocument2::createElement()函数创建一个 IHTMLScriptElement?
IHTMLDocument2::createElement()函数可以创建一个新的IHTMLElement,但是我在创建一个IHTMLScriptElement的时候却遇到了问题。虽然使用“script”关键字创建了一个新的element,但是它并不是一个IHTMLScriptElement,这是为什么?代码如下:
IHTMLElementCollectionPtr pColl;
if( m_pDoc2 != 0 && S_OK == m_pDoc2->get_all( &pColl ) )
{
long l;
if( S_OK == pColl->get_length( &l ) )
{
for( long i=0; i<l; i++ )
{
VARIANT vt;
vt.vt = VT_I4;
vt.lVal = i;
IDispatchPtr pDis;
if( S_OK == pColl->item( vt, vt, &pDis ) )
{
CComBSTR str;
IHTMLDOMNodePtr pNode = pDis;
if( pNode )
{
if( S_OK == pNode->get_nodeName( &str ) )
{
IHTMLElementPtr pEle;
//获取body element
if( str == CComBSTR("BODY") || str == CComBSTR("body") )
{
//创建一个script关键字的element
if( S_OK == m_pDoc2->createElement( L"script", &pEle ) )
{
IHTMLDOMNodePtr p = pEle;
if( p )
{
IHTMLDOMNodePtr pReturn;
//将新的element插入到body最后
if( S_OK == pNode->appendChild( p, &pReturn ) )
{
break;
}
}
}
}
}
}
}
}
}
}