有界面的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" onmousedown="BodyMouseDown()">
js腳本代碼:

function BodyMouseDown()
{ 
	document.getElementById('BodyID').focus();
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章