有界面的OCX在IE浏览器下的布局问题总结

一、不能使有界面的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();
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值