3,055
社区成员
发帖
与我相关
我的任务
分享
typedef enum InnerFileType
{
FileTypeJavaScript,
FileTypeCSS,
FilePathBackground,
};
/*设置外链JS,CSS文件或背景图片文件路径,bRelative为TRUE时,filePath指定为相对于可执行文件的路径,否则为绝对路径。如果设置了错误路径,会导致javascript运行出错,css无效。*/
BOOL CDhtmlHelp::SetJSOrCSSFilePath(InnerFileType type, LPCTSTR eleID, LPCTSTR filePath, BOOL bRelative /*= TRUE*/ )
{
HRESULT hr;
IHTMLElement *pEle;
hr = m_pDhtmlDlg->GetElement( eleID, &pEle );
if ( FAILED(hr) )
{
return FALSE;
}
CComBSTR name;
if ( type == FileTypeJavaScript )
{
name = _T("src");
}
else if ( type == FileTypeCSS )
{
name = _T("href");
}
else if ( type == FilePathBackground)
{
name = _T("background");
}
else
{
return FALSE;
}
TCHAR tszPath[MAX_PATH] = {0};
if ( !bRelative )
{
_tcscpy(tszPath,filePath);
}
else
{
if ( 0 == GetModuleFileName( NULL, tszPath, MAX_PATH ) )
{
return FALSE;
}
//取exe文件所在目录
TCHAR *pItalic = _tcsrchr( tszPath, _T('\\') );
if ( pItalic == NULL )
{
return FALSE;
}
pItalic++;//指向斜杠后面一个字符
memset( pItalic, _T('\0'), _tcslen(pItalic)*sizeof(TCHAR) );
_tcscat( tszPath, filePath );
}
CComBSTR value(tszPath);
VARIANT str;
str.vt = VT_BSTR;
str.bstrVal = value;
hr = pEle->setAttribute( name, str,0 );
if ( FAILED(hr) )
{
return FALSE;
}
return TRUE;
}