0

例如,我有一个 javascript

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

在 FireFox 中,Adobe 插件(Flash 播放器插件)通过调用在 Java Script 之上执行NPN_EvaluateNPN_Evaluate()返回结果。

我不知道在 IE 中,adobe flash player(ActiveX) 如何执行上述和相同的 JAVA 脚本。但是我在 IShockwaveFlash 的 SetReturnValue() 中看到了一个结果,例如</undefined>, <string>3456</string>。看起来 Adob​​e ActiveX 没有IHTMLWindow2::execScript()用于执行 JS。

我想知道如何从 ActiveX 执行 JS 代码。

我知道如何在IHTMLWindow2::execScript(). 但IHTMLWindow2::execScript()不返回结果。我也知道如何在IDispatch()接口的帮助下调用 JS 函数。

我想知道 Adob​​e ActiveX 是如何执行上述代码的。我也在为 IE 开发一个类似的 ActiveX,我想从 ActiveX 执行类似的 JS(上一个)。

4

3 回答 3

1

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

于 2013-01-24T10:18:25.070 回答
0

据我所知,没有办法做你要求做的事情。至少如果它是相当新的,并且只适用于较新版本的 IE(我最近没仔细看)。但是,一种选择是将脚本包装在函数调用中,并将调用的结果保存到某个全局变量(在窗口上),然后您可以查询该变量以获取返回值。

我不确定,但我猜这与 Flash 正在做的事情类似。

于 2012-08-31T04:14:28.493 回答
0

虽然我同意 SWFObject 是最好的方法,但您可以通过'src''movie'参数传递值。前任:

'src', '/resources/flash/corporateWebsitButtons?variable=value&variable2=value'
'movie', '/resources/flash/corporateWebsitButtons?variable=value&variable2=value'
于 2014-01-19T21:11:12.517 回答