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