浏览器的定制与扩展
2006-07-22 22:56:33 来源:WEB开发网核心提示: 怎样禁止网页元素的选取用网页做界面时多数情况下是不希望网页上的元素是能够被鼠标选中的, 要使网页元素不能被选中做法是:给浏览器的“宿主信息标记”加上DOCHOSTUIFLAG_DIALOG标记,浏览器的定制与扩展(9),“宿主信息标记”用N个
怎样禁止网页元素的选取
用网页做界面时多数情况下是不希望网页上的元素是能够被鼠标选中的, 要使网页元素不能被选中做法是:给浏览器的“宿主信息标记”加上DOCHOSTUIFLAG_DIALOG标记。
“宿主信息标记”用N个标记位来控制浏览器的许多性质,如:
- 禁用浏览器的3D的边缘;
- 禁止滚动条;
- 禁用脚本;
- 定义双击处理的方式;
- 禁用浏览器的自动完成功能;
...... 更多详情请参考MSDN的DOCHOSTUIFLAG帮助。
怎样修改“宿主信息标记”?
在CDocHostSite中实现IDocHostUIHandler, 在GetHostInfo方法中调用浏览器的OnGetHostInfo虚函数,在虚函数OnGetHostInfo中便可指定“宿主信息标记”,如:
HRESULT CLhpHtmlView::OnGetHostInfo(DOCHOSTUIINFO * pInfo)
{
pInfo->cbSize = sizeof(DOCHOSTUIINFO);
pInfo->dwFlags = DOCHOSTUIFLAG_DIALOG |
DOCHOSTUIFLAG_THEME |
DOCHOSTUIFLAG_NO3DBORDER |
DOCHOSTUIFLAG_SCROLL_NO;
pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
return S_OK;
}
用脚本也可实现: 在Head中加入脚本: document.onselectstart=new Function(''return false'');
或者 <body onselectstart="return false">。
其它
在CLhpHtmlView中还提供了几个函数, 修改网页元素的内容:BOOL PutElementHtml(CString ElemID,CString Html);
取表单元素的值:BOOL GetElementValue(CString ElemID,CString& Value);
设置表单元素的值:BOOL PutElementValue(CString ElemID,CString Value);
给表单元素设置焦点:void ElementSetFocus(CString EleName);
更多精彩
赞助商链接