我在vs2008平台下,创建一个基于CDHtmlDialog的对话框工程,然后再HTML文件中引入外部js文件,就是不成功啊,哪位大神指点一下。
代码如下:
<div id="playercontainer"></div>
<script type="text/javascript" src="player/cyberplayer.js"></script>
<script type="text/javascript">
var player = cyberplayer("playercontainer").setup({
width: 854,
height: 480,
stretching: "uniform",
file: "http://demo-video.bj.bcebos.com/AdrenalineRush.m3u8",
autostart: true,
repeat: false,
volume: 100,
controls: true,
ak: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' // 公有云平台注册即可获得accessKey
});
</script>
把所有使用的资源(图片,CSS,JS等),统统放到HTML资源类型下,引用的时候写成 res:/#资源号就可以了
或者参考CDHtmlDialog加载图片使用相对路径的有关问题
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;
}
你的相对路径是否正确,先看你的html在本地是否可以正确加载,然后就是注意CDhtmlDialog加载后,html的当前路径
参考CDHtmlDialog 中 html 资源加载 css 样式,js 脚本,图片
若想在 CDHtmlDialog 的 html 中加载 css , js ,图片文件,必须把这些文件引入资源文件,然后把 html 文件中的链接转换成对应的资源 ID 的数值.
添加步骤:
•第一步: 添加想要添加的 css , js ,图片文件到资源文件中.
•第二步:找到添加的文件的资源 ID 对应的数值.
•第三步:在引用文件时候,把链接地址以 "res:/资源文件添加到的所属文件结构/#资源ID" 来写
然后在资源文件中资源 ID 对应的数值:
#define IDR_CUS1 131
#define IDR_CUS2 132
#define IDR_CUS3 133
在 html 文件中引用导入到资源文件中的 css,js,图片 文件:
<SCRIPT src="res:/CUS/#131" type=text/javascript></SCRIPT>
<link type="text/css" rel="stylesheet" href="res:/CUS/#132" />
<img src="res:/CUS/#133">