我有一个javascript例如
try { __flash__toXML(onYouTubePlayerReady("")) ; } catch (e) { "<undefined/>"; } .
在FireFox中,Adobe插件(Flash播放器插件)通过调用NPN_Evaluate
在{...}}上执行,而NPN_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 :(得分:1)
ActiveX使用IE的IHTMLWindow2 :: execScript()来执行javascript,但IHTMLWindow2 :: execScript()不返回结果。它使用IshockwaveFlash :: SetRerernValue和IShockwaveFlash :: CallFunction返回javascript结果。
答案 1 :(得分:0)
据我所知,没有办法做你要求做的事;至少如果它是相当新的,只适用于较新版本的IE(我最近没有看起来很难)。但是,一个选项是将脚本包装在函数调用中,并将该调用的结果保存到某个全局变量(在窗口中),然后可以查询该变量以获取返回值。
我不确定,但我猜这是闪光灯正在做的事情。
答案 2 :(得分:0)
虽然我同意SWFObject是最好的方法,但您可以通过'src'
和'movie'
参数传递值。 EX:
'src', '/resources/flash/corporateWebsitButtons?variable=value&variable2=value'
'movie', '/resources/flash/corporateWebsitButtons?variable=value&variable2=value'