【茶包射手日記】在IE Modal Dialog無法安裝ActiveX控制項

公司e-Learning網站使用了PowerCam元件播放教學錄影,不知從IE9還是IE10起,開啟課程內容網頁,內嵌PowerCam ActiveX控制項的網頁無法自動下載安裝元件,會出現以下訊息:

One or more ActiveX controls could not be displayed because:
1) Your current security settings prohibit running ActiveX controls on this page, or
2) You have blocked a pubisher of one of the controls.
As a result, the page might not display correctly.

無法顯示一個或多個 Active X 控制項,因為:
1) 您目前的安全性設定禁止在這個畫面執行 ActiveX 控制項,或者
2) 您已經封鎖其中一個控制項的發行者。
結果是畫面可能無法正常顯示。

直覺與IE安全設定,試過幾種設定組合,將網站加入受信任網站都無法解決問題。偵察過程發現PowerCam元件所在網頁採用showModalDialog開啟,打開F12開發者工具抓出網頁Url,改以IE直接開啟,忽然冒出安裝提示令人驚喜。下載安裝控制項後,教學影片順利播放,之後開啟該課程網頁就正常了。

換言之,關鍵在於Modal Dialog! 使用showModalDialog開啟內嵌ActiveX控制項網頁,瀏覽器拒絕執行ActiveX控制項;未變更任何IE安全設定,改成直接開啟該網頁,ActiveX控制項就能下載、安裝並正確執行;一旦安裝完成,用showModalDialog開啟也能正確執行ActiveX控制項。代表「Modal Dialog阻擋ActiveX控制項安裝,但不限制其執行」?

寫了兩個簡單網頁重現問題,在Test.html內嵌PowerCam播放器ActiveX控制項:

<html>
<body>
TEST:
<OBJECT ID=player
  CLASSID='CLSID:884C5B76-B154-45b5-A1ED-3746D0CCA352' 
  CODEBASE='http://download.powercam.com.tw/fsplayer6.cab#version=6,0,0,619'> 
</OBJECT>
</body>
</html>

在另一個Host.html網頁以showModalDialog開啟Test.html:

function openModalDialog() { 
  window.showModalDialog("TEST.html", "diag", "width:300px;height:300px"); 
} 

點擊按鈕開啟Modal Dialog後,確實可重現拒絕安裝ActiveX控制項的情境!

可惜的是,我找不到官方文件提到這項Modal Dialog對ActiveX控制項的額外限制,無從得知可否透過安全設定避免,改用IE直接開啟網頁安裝控制項這招看來可行,就當成Workaround吧!

歡迎推文分享:
Published 04 March 2015 10:37 PM 由 Jeffrey
Filed under: ,
Views: 4,576



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<March 2015>
SunMonTueWedThuFriSat
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication