ZengHD 2009年03月02日
BHO使用insertAdjacentHTML插入JS文件,IE6没错,但在IE7里总是提示“无效字符”,是怎么回事呢?
我在BHO里使用下面两个方法插入JS文件,在IE6上都没有问题,但在IE7上总是提示“无效字符”:

第一种方法:
CComPtr<IHTMLElement> spBody;
spHTML->get_body(&spBody);
if(spBody!=NULL)
{
CComBSTR bstrHTMLText("<br><script defer src='C:\\function.js'></script>");
spBody->insertAdjacentHTML(CComBSTR("AfterBegin"),bstrHTMLText);
}



第二种方法:
CComPtr<IHTMLElement> spBody;
spHTML->get_body(&spBody);
if(spBody!=NULL)
{
CComPtr<IHTMLElement> spScript;
spHTML->createElement(CComBSTR("script"),&spScript);
if(spScript!=NULL)
{
spBody->insertAdjacentHTML
spScript->setAttribute(CComBSTR("src"),CComVariant("C:\\function.js"),0);
spScript->setAttribute(CComBSTR("type"),CComVariant("text/javascript"),0);

CComQIPtr< IHTMLDOMNode, &IID_IHTMLDOMNode > pBodyNode(spBody);
if (pBodyNode!=NULL )
{
CComQIPtr< IHTMLDOMNode,&IID_IHTMLDOMNode > pNewChild(spScript);
CComPtr< IHTMLDOMNode> pRefChild;

hr = pBodyNode->appendChild( pNewChild, &pRefChild );

}
}
}



function.js文件很简单,就一个函数:
function ShowMsg()
{
alert("123");
}


为什么总是提示“无效字符”呢?JS文件的字符集错误?还是JS文件有错误?

...全文
1361 点赞 收藏 10
写回复
10 条回复

还没有回复,快来抢沙发~

发动态
发帖子
ATL
创建于2007-09-28

3021

社区成员

4.8w+

社区内容

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区公告
暂无公告