0

たとえば、JavaScriptがあります

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

FireFoxでは、Adobeプラグイン(Flashプレーヤープラグイン)を呼び出すことNPN_EvaluateでJava Scriptの上で実行し、NPN_Evaluate()結果も返します。

IEで、adobe flash player(ActiveX)が上記と同じJAVAスクリプトを実行する方法がわかりません。しかし、IShockwaveFlashのSetReturnValue()に、のような結果が表示されてい</undefined>ます<string>3456</string>。AdobeActiveXがIHTMLWindow2::execScript()JSの実行に使用していないようです。

ActiveXからJSコードを実行する方法を知りたいのですが。

の助けを借りてJS関数を呼び出す方法を知っていますIHTMLWindow2::execScript()。ただし、IHTMLWindow2::execScript()結果は返されません。また、インターフェイスを使用してJS関数を呼び出す方法も知っていIDispatch()ます。

AdobeActiveXが上記のコードをどのように実行しているか知りたいのですが。IE用の同様のActiveXも開発しており、ActiveXから同様の種類のJS(上記)を実行したいと思います。

4

3 に答える 3

1

ActiveX は IE の IHTMLWindow2::execScript() を使用して javascript を実行しますが、IHTMLWindow2::execScript() は結果を返しません。IshockwaveFlash::SetReerernValue と IShockwaveFlash::CallFunction を使用して JavaScript の結果を返します。

于 2013-01-24T10:18:25.070 に答える
0

私の知る限りでは、あなたが求めていることを実行する方法はありません。少なくとも、かなり新しく、新しいバージョンの IE でのみ動作する場合 (私は最近よく調べていません)。ただし、1 つのオプションは、関数呼び出しでスクリプトをラップし、その呼び出しの結果を (ウィンドウ上の) グローバル変数に保存して、クエリを実行して戻り値を取得することです。

確かなことはわかりませんが、これはフラッシュが行っていることに沿ったものだと思います。

于 2012-08-31T04:14:28.493 に答える