一、不能使有界面的OCX控件显示不全,且要铺满界面。
因为有界面的OCX一定会有最小界面(即有最小的宽度和高度),所以IE浏览器缩小到一定大小后应采用滚动条的方式,使有界面的OCX控件可以将界面全部显示。具体操作如下:
这里处理方法很多,比如在网页html的object的标签上加上一些样式。但是这样就要考虑IE浏览器的版本的问题。所以我主要介绍的方法可以不用考虑IE浏览器的版本的问题。
1、在Html的object标签上加入有滚动条的CSS样式;
2、使用js将window.onresize处理事件重写,
window.onresize = function()
{
if(document.body.clientWidth > ocx最小宽度)
{
document.getElementById('***').style.width = "100%";
}
else
{
document.getElementById('***').style.width = ocx最小宽度;
}
if(document.body.clientHeight < ocx最小高度)
{
document.getElementById('***').style.height= ocx最小高度;
}
else
{
document.getElementById('***').style.height= "100%";
}
}
//注:***表示object标签的ID即OCX控件的ID
二、当使用有界面的OCX时,一定会去将键盘事件与鼠标事件设置到OCX控件,而不是被IE浏览器截获。这时候,就有个问题,当浏览器出现滚动条时且用户已经操作过OCX控件时,就无法使用鼠标的滚动键事件来滚动浏览器。
原因:因为当用户已经操作过OCX控件时,鼠标的焦点已经在OCX控件上,这时就无法操作滚动条。将鼠标的焦点移至浏览器客户区其他网页控件上就可以操作滚动条。
基于上述原因,只要当用户点击浏览器的滚动条时将鼠标焦点移至ocx控件外就可以实现滚动键事件处理。
但是浏览器的滚动条是非DOM节点,他只有onmousedown事件。所以只要body标签上加入onmousedown事件,代码如下:
<span style="white-space:pre"> </span><body id="bodyID" οnmοusedοwn="BodyMouseDown()">
js脚本代码:
function BodyMouseDown()
{
document.getElementById('BodyID').focus();
}