最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

激活 ActiveX 控件

 更新時(shí)間:2006年10月09日 00:00:00   作者:  

激活 ActiveX 控件

發(fā)布日期: 2006-3-29 | 更新日期: 2006-3-29

Internet 開(kāi)發(fā)索引

用戶(hù)不能與 APPLET、EMBEDOBJECT 元素加載的 Microsoft ActiveX 控件直接交互。用戶(hù)激活這些控件的用戶(hù)界面后才可以與這些控件交互。本文介紹 Microsoft Internet Explorer 如何處理 ActiveX 控件,顯示如何加載 ActiveX 控件才能激活它們的界面,還描述這種行為對(duì)輔助工具和宿主 WebBrowser 控件的應(yīng)用程序的影響。

本主題包含以下部分。

*

 

 

本頁(yè)內(nèi)容

了解控件激活 了解控件激活
外部加載交互控件 外部加載交互控件
以編程方式確定控件是否未激活 以編程方式確定控件是否未激活
輔助影響 輔助影響
WebBrowser 控件影響 WebBrowser 控件影響
附錄 A:未激活控件所阻止的 DHTML 事件 附錄 A:未激活控件所阻止的 DHTML 事件

有關(guān)該更新所影響平臺(tái)的其他信息,請(qǐng)參見(jiàn)Internet Explorer ActiveX 更新。

 

了解控件激活

交互控件 是提供用戶(hù)界面的 ActiveX 控件。當(dāng) Web 頁(yè)使用 APPLET、EMBEDOBJECT 元素加載某個(gè) ActiveX 控件時(shí),該控件的用戶(hù)界面在用戶(hù)激活它之前一直是阻止的。如果一個(gè)頁(yè)面使用這些元素加載多個(gè)控件,則每個(gè)交互控件必須單獨(dú)激活。

如果某個(gè)控件未激活,就會(huì)出現(xiàn)以下結(jié)果。

與用戶(hù)交互相關(guān)的動(dòng)態(tài) HTML (DHTML) 事件(如 onblur 和 onclick)被阻止。附錄 A 列出控件未激活時(shí)受阻的 DHTML 事件。

該控件不響應(yīng)鍵盤(pán)或鼠標(biāo)生成的窗口消息,如 WM_CLICK、WM_KEYPRESS 等。

覆蓋窗口(創(chuàng)建于控件的 OLE 站點(diǎn))防止鍵盤(pán)和鼠標(biāo)消息到達(dá)未激活的控件。

創(chuàng)建了一個(gè)未激活控件后,Internet Explorer 使用不同技術(shù)防止鍵盤(pán)或鼠標(biāo)窗口消息到達(dá)該控件。如果未激活控件是一個(gè)有窗口的控件(如 HTML Help 控件),Internet Explorer 使用 EnableWindow 函數(shù)禁用這個(gè)未激活控件的窗口。當(dāng)用戶(hù)激活一個(gè)有窗口的控件時(shí),該函數(shù)激活禁用的窗口。如果未激活控件是一個(gè)無(wú)窗口控件(如 Office Web 組件),則該控件的容器會(huì)篩選鍵盤(pán)和鼠標(biāo)消息。

如果某個(gè)控件未激活,它不響應(yīng)用戶(hù)輸入,但執(zhí)行與交互無(wú)關(guān)的操作。例如,如果您打開(kāi)一個(gè)使用 Microsoft Windows 媒體播放器播放音樂(lè)文件的 Web 頁(yè),該頁(yè)加載后才會(huì)播放音樂(lè)。只有該控件的用戶(hù)界面激活后,您才能與 Windows 媒體播放器交互,如下圖所示。

 


 

雖然未激活控件不響應(yīng)任何直接的用戶(hù)交互;但它們響應(yīng)腳本命令。

要激活一個(gè)交互控件,可以單擊該控件,也可以使用 Tab 鍵將焦點(diǎn)設(shè)置在該控件上,然后按 SPACEBAR 或 ENTER 鍵。從外部腳本加載的交互控件無(wú)需激活即可立即響應(yīng)用戶(hù)交互。

某些有窗口的控件使用 Windows API 函數(shù)(如 GetKeyState 和 GetCursorPos)確定鍵盤(pán)和鼠標(biāo)的狀態(tài),然后響應(yīng)函數(shù)結(jié)果。僅對(duì)于這些控件而言,先出現(xiàn)一個(gè)提示,然后才會(huì)在 Internet Explorer 中運(yùn)行控件。要運(yùn)行控件,用戶(hù)需要先單擊消息窗口中的按鈕,然后頁(yè)面才會(huì)加載。加載后,控件不需要激活。目前,以下控件具有該行為,但供應(yīng)商正在繼續(xù)研發(fā)沒(méi)有該行為的新控件。

Virtools™Web Player from Virtools SA

Macromedia Shockwave Player™from Adobe Systems Inc.

QuickTime™from Apple Computer, Inc.

從外部腳本文件加載時(shí),這些控件不顯示提示。

下圖顯示提示對(duì)話(huà)框。

 


 

 

外部加載交互控件

要?jiǎng)?chuàng)建加載交互控件(這些控件立即響應(yīng)用戶(hù)輸入)的 Web 頁(yè),使用 Microsoft JScript 從外部腳本文件加載控件。您不能編寫(xiě)與主 HTML 頁(yè)內(nèi)聯(lián)的腳本元素來(lái)從外部加載控件。如果腳本是以編程方式內(nèi)聯(lián)編寫(xiě)的(例如,用 writeln 函數(shù)),加載的控件就像由 HTML 文檔本身加載的一樣,需要激活。要確??丶诩虞d后是交互的,使用以下任一技術(shù)。

下面的示例使用 document.write 動(dòng)態(tài)加載控件。

// HTML File
<html>
 <body leftmargin=0 topmargin=0 scroll=no>
 <script src="Embed.js"></script>
 </body>
</html>
// embed.js
document.write(' <embed src="examplecontrol">')

外部腳本文件也可以修改某個(gè)元素的 outerHTML 屬性來(lái)達(dá)到同樣的效果,如下例所示。

// HTML File
<html>
 <body> 
 <div>
  <script src="embedControlOuterHTML.js"></script>
 </div>
 </body>
</html>
// embedControlOuterHTML.js
embedControlLocation.outerHTML = '<embed src="examplecontrol">';

下一示例使用 document.createElement 加載一個(gè)使用 OBJECT 元素的 ActiveX 控件。

重要 使用 createElement 向 Web 頁(yè)加載 Object 元素或 Embed 元素時(shí),請(qǐng)小心創(chuàng)建該元素,初始化其屬性,將該元素添加到頁(yè)面的 DOM,然后再創(chuàng)建要由該新元素加載的 ActiveX 控件。有關(guān)詳細(xì)信息,請(qǐng)參閱 createElement 文檔。

// HTML File
<html>
 <body> 
 <div id="DivID">
  <script src="createElementExplicit.js"></SCRIPT> PRE html>< < body>>
// createElementExplicit.js
var myObject = document.createElement('object');
DivID.appendChild(myObject);
myObject.width = "200";
myObject.height = "100";
myObject.classid= "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"; 
myObject.URL = "example.wmv";
myObject.uiMode = "none" ;

下一示例使用 innerHTML 和 JScript 函數(shù)加載 ActiveX 控件,同時(shí)指定參數(shù)值。

// HTML File
<html>
 <head>
 <script src="external_script.js" language="JScript"> </script>
 </head>
 <body>
 <div id="EXAMPLE_DIV_ID">
  This text will be replaced by the control
 </div>
 <script language="JScript">
  CreateControl( "EXAMPLE_DIV_ID",
     "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6",
     "EXAMPLE_OBJECT_ID", "600", "400", "example.wmv",
     "-1")
 </script>
 </body>
</html>
// external_script.js
function CreateControl(DivID, CLSID, ObjectID,
      WIDTH, HEIGHT, URL, AUTOSTART)
{
 var d = document.getElementById(DivID);
 d.innerHTML = 
 '<object classid=' + CLSID + ' id=' + ObjectID + 
 ' width=' + WIDTH + ' height=' + HEIGHT +'>
 <param name="URL" value=' + URL + '>
 <param name="autoStart" value=' + AUTOSTART + '/>';
}

由于下一示例使用 writeln 函數(shù)將腳本插入原始的 HTML 文檔,因此產(chǎn)生的控件需要激活。要加載一個(gè)無(wú)需激活的控件,請(qǐng)使用上述示例之一。

// HTML File
<html>
 <body> 
 <div id="embedControlLocation">
  <script id="elementid" src="embedControl.js"></script> 
 </div>
 </body>
</html>
// embedControl.js
document.writeln('<script>');
document.write('document.writeln(\'');
document.write( '<object classid = 
    "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" 
    width="100" height="100" />');
document.write('\');');
document.writeln('</script>');

警告 如果在控制面板的“Internet 選項(xiàng)”的“高級(jí)”選項(xiàng)卡中不選“禁用腳本調(diào)試 (Internet Explorer)”選項(xiàng),則使用這些技術(shù)創(chuàng)建的控件仍需激活。

 

以編程方式確定控件是否未激活

您不能使用 JScript 函數(shù)或服務(wù)器端腳本來(lái)確定某個(gè)控件是否為激活。宿主 Web 瀏覽器控件的應(yīng)用程序不能確定某個(gè)控件是否為激活。

控件可以通過(guò) DISPID_AMBIENT_UIDEAD 環(huán)境屬性確定激活狀態(tài),該屬性通過(guò) IDispatch::Invoke 調(diào)用。該屬性通過(guò) IOleControl::OnAmbientPropertyChange 進(jìn)行更改時(shí),會(huì)通知實(shí)現(xiàn) IOleControl 接口的控件。

 

輔助影響

當(dāng)輔助工具遇到 ActiveX 控件時(shí),可以使用對(duì)象的 IAccessible 接口獲取有關(guān)該控件的信息??梢杂?IAccessible::accDoDefaultAction 方法激活未激活的控件。

下表描述在未激活控件上調(diào)用 IAccessible 方法產(chǎn)生的結(jié)果。

方法 說(shuō)明

IAccessible::accDoDefaultAction

激活控件并在 MSAA 樹(shù)內(nèi)公開(kāi) ActiveX 控件或 Java Applet。

IAccessible::accHitTest

返回 CHILDID_SELF

IAccessible::accLocation

底層 ActiveX 控件或 Java Applet 的位置

IAccessible::accNavigate

返回 E_NOTIMPL

IAccessible::accSelect

返回 E_NOTIMPL

IAccessible::get_accChild

返回 S_FALSE

IAccessible::get_accChildCount

返回 0 和 S_OK

IAccessible::get_accDefaultAction

返回“Select this control”

IAccessible::get_accDescription

返回 E_NOTIMPL

IAccessible::get_accFocus

返回 E_NOTIMPL

IAccessible::get_accHelp

返回“This control is inactive.Select the control to activate and use it.”

IAccessible::get_accHelpTopic

沒(méi)有變化 — 返回 E_NOTIMPL

IAccessible::get_accKeyboardShortcut

沒(méi)有變化 — 委托該對(duì)象。如果沒(méi)有對(duì)象,該方法返回 E_NOTIMPL。

IAccessible::get_accName

返回“Inactive Control”

IAccessible::get_accParent

沒(méi)有變化 — 返回父鏈中最近的可訪問(wèn)的元素。

IAccessible::get_accRole

返回 ROLE_SYSTEM_PUSHBUTTON

IAccessible::get_accSelection

返回 E_NOTIMPL

IAccessible::get_accState

返回對(duì)象的當(dāng)前狀態(tài)。該狀態(tài)總是包括 STATE_SYSTEM_FOCUSABLE

IAccessible::get_accValue

返回 E_NOTIMPL

IAccessible::put_accName

返回 E_NOTIMPL

IAccessible::put_accValue

返回 E_NOTIMPL

有關(guān)激活的控件或不需要激活的控件的信息,請(qǐng)參閱 Active Accessibility SDK

輔助工具觸發(fā)默認(rèn)操作后應(yīng)該刷新,這樣才能正確顯示 ActiveX 控件的數(shù)據(jù)及其子控件的數(shù)據(jù)(如果有)。

 

WebBrowser 控件影響

默認(rèn)情況下,宿主 WebBrowser Control 的自定義應(yīng)用程序不會(huì)阻止由 APPLETEMBEDOBJECT 元素加載的交互式 ActiveX 控件。未激活控件阻止僅應(yīng)用于以下應(yīng)用程序。

Windows Explorer

Internet Explorer

MSN Explorer

AOL®Explorer

AOL®8.0

AOL®9.0

CompuServe 2000

AIM®

Maxthon Browser

NetCaptor

Browse3D

Macromedia Dreamweaver

Macromedia Contribute

Netscape®8(將 Internet Explorer 用作呈現(xiàn)引擎時(shí))

要與應(yīng)用程序中 Internet Explorer 的行為匹配,將 DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE 標(biāo)志添加到 DOCHOSTUIINFO 結(jié)構(gòu)的 dwFlags 參數(shù)中,如下例所示。

HRESULT GetHostInfo(DOCHOSTUIINFO *pInfo)
{
 ...
 pInfo->cbSize = sizeof(DOCHOSTUIINFO);
 pInfo->dwFlags = { Other DOCHOSTUIFLAGs } | 
  DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE; 
 ...
 return S_OK;
}

還可以通過(guò)將應(yīng)用程序的進(jìn)程名添加到以下注冊(cè)表項(xiàng)來(lái)啟用交互控件阻止。

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
Microsoft
Internet Explorer
Main
FeatureControl
FEATURE_ENABLE_ACTIVEX_INACTIVATE_MODE
process_name.exe=(DWORD) 0x00000001

因?yàn)橛脩?hù)可以修改注冊(cè)表,所以 DOCHOSTUIINFO 標(biāo)志是啟用交互控件阻止的首選方法。

默認(rèn)情況下,應(yīng)用程序可以注冊(cè)以并入 ActiveX 控件激活。有關(guān)詳細(xì)信息,請(qǐng)咨詢(xún)您的技術(shù)客戶(hù)經(jīng)理或與 Microsoft 的產(chǎn)品支持部門(mén)聯(lián)系。

 

附錄 A:未激活控件所阻止的 DHTML 事件

下表列出 ActiveX 控件未激活時(shí)所阻止的 DHTML 事件。

onactivate

ondragleave

onmouseout

onbeforeactivate

ondragover

onmouseover

onbeforecopy

ondragstart

onmouseup

onbeforecut

ondrop

onmousewheel

onbeforedeactivate

onfocus

onmove

onbeforepaste

onfocusin

onmoveend

onblur

onfocusout

onmovestart

onclick

onhelp

onpage

oncontextmenu

onkeydown

onpaste

oncontrolselect

onkeypress

onresize

oncopy

onkeyup

onresizeend

oncut

onlosecapture

onresizestart

ondblclick

onmousedown

onscroll

ondeactivate

onmouseenter

onselectstart

ondragend

onmouseleave

-

ondragenter

onmousemove

-

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)多列選擇器

    微信小程序?qū)崿F(xiàn)多列選擇器

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)多列選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 利用H5api實(shí)現(xiàn)時(shí)鐘的繪制(javascript)

    利用H5api實(shí)現(xiàn)時(shí)鐘的繪制(javascript)

    這篇文章主要為大家詳細(xì)介紹了利用H5api實(shí)現(xiàn)時(shí)鐘的繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • JS使用canvas繪制旋轉(zhuǎn)風(fēng)車(chē)動(dòng)畫(huà)

    JS使用canvas繪制旋轉(zhuǎn)風(fēng)車(chē)動(dòng)畫(huà)

    這篇文章主要為大家詳細(xì)介紹了JS使用canvas繪制旋轉(zhuǎn)風(fēng)車(chē)動(dòng)畫(huà),有加速減速啟動(dòng)停止功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 原生JS實(shí)現(xiàn)隨機(jī)點(diǎn)名項(xiàng)目的實(shí)例代碼

    原生JS實(shí)現(xiàn)隨機(jī)點(diǎn)名項(xiàng)目的實(shí)例代碼

    這篇文章主要介紹了原生JS實(shí)現(xiàn)隨機(jī)點(diǎn)名項(xiàng)目的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-04-04
  • 使用JSX實(shí)現(xiàn)Carousel輪播組件的方法(前端組件化)

    使用JSX實(shí)現(xiàn)Carousel輪播組件的方法(前端組件化)

    做這個(gè)輪播圖的組件,我們先從一個(gè)最簡(jiǎn)單的 DOM 操作入手。使用 DOM 操作把整個(gè)輪播圖的功能先實(shí)現(xiàn)出來(lái),然后在一步一步去考慮怎么把它設(shè)計(jì)成一個(gè)組件系統(tǒng)
    2021-04-04
  • 詳解js的視頻和音頻采集

    詳解js的視頻和音頻采集

    這篇文章給大家講述了關(guān)于js的視頻和音頻采集的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2018-08-08
  • js繪制圓形和矩形的方法

    js繪制圓形和矩形的方法

    這篇文章主要介紹了js繪制圓形和矩形的方法,涉及javascript鼠標(biāo)事件及頁(yè)面元素樣式的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • js腳本實(shí)現(xiàn)數(shù)據(jù)去重

    js腳本實(shí)現(xiàn)數(shù)據(jù)去重

    最近在一個(gè)項(xiàng)目中,需要去除掉重復(fù)的數(shù)據(jù),之前都是在后臺(tái)實(shí)現(xiàn),現(xiàn)在客戶(hù)需求是在前臺(tái)去重,于是就想到了javascript腳本。
    2014-11-11
  • JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法

    JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)數(shù)組隨機(jī)排序的方法,涉及javascript數(shù)組遍歷與排序的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • js為什么不能正確處理小數(shù)運(yùn)算?

    js為什么不能正確處理小數(shù)運(yùn)算?

    這篇文章主要介紹了js不能正確處理小數(shù)運(yùn)算的原因,為大家解除js為什么不能正確處理小數(shù)運(yùn)算的疑慮,感興趣的小伙伴們可以參考一下
    2015-12-12

最新評(píng)論

宜昌市| 台湾省| 通城县| 霞浦县| 虹口区| 瑞昌市| 阿克苏市| 百色市| 林西县| 光山县| 汾阳市| 高邮市| 江永县| 新田县| 灌云县| 泗洪县| 哈巴河县| 鸡东县| 金昌市| 宜昌市| 达尔| 万山特区| 渭南市| 丘北县| 昭通市| 岳阳县| 新野县| 定远县| 保德县| 阿克陶县| 北碚区| 岐山县| 济源市| 涟水县| 綦江县| 温泉县| 开平市| 旬阳县| 北流市| 北安市| 荣昌县|