2012-08-30 24 views
0

執行JavaScript我有例如如何從ActiveX控件在IE

try { __flash__toXML(onYouTubePlayerReady("")) ; } catch (e) { "<undefined/>"; } . 

在Firefox中一個JavaScript,Adobe公司的插件(Flash播放器插件)以上的Java腳本執行調用NPN_EvaluateNPN_Evaluate()返回結果也。

我沒有得到如何在IE瀏覽器,Adobe Flash Player(ActiveX)執行上述和相同的JAVA腳本。但我看到IShockwaveFlash的SetReturnValue()的結果,如</undefined><string>3456</string>。它看起來像Adobe ActiveX不使用IHTMLWindow2::execScript()來執行JS。

我想知道如何從ActiveX執行JS代碼。

我知道如何在IHTMLWindow2::execScript()的幫助下調用JS函數。但IHTMLWindow2::execScript()不返回結果。另外我知道如何在IDispatch()接口的幫助下調用JS函數。

我想知道Adobe ActiveX如何執行上面的代碼。我也在爲IE開發一個類似的ActiveX,我想從ActiveX執行類似的JS(上面的)。

回答

0

據我所知,沒有辦法做你要求做的事情;至少如果它是相當新的,只適用於較新版本的IE瀏覽器(我最近沒有看過)。然而,一種選擇是在函數調用中包裝腳本,並將該調用的結果保存到某個全局變量(在窗口上),然後您可以查詢該全局變量以獲取返回值。

我不確定,但我猜想這是閃光燈的功能。

1

ActiveX使用IE的IHTMLWindow2 :: execScript()來執行javascript,但IHTMLWindow2 :: execScript()不返回結果。它使用IshockwaveFlash :: SetRerernValue和IShockwaveFlash :: CallFunction來返回javascript結果。

0

儘管我同意SWFObject是最好的方法,但您可以通過'src''movie' params傳遞值。 EX:

'src', '/resources/flash/corporateWebsitButtons?variable=value&variable2=value' 
'movie', '/resources/flash/corporateWebsitButtons?variable=value&variable2=value'