問題タブ [iactivescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7852 参照

javascript - IE9のJavascriptエンジン(コードネーム「Chakra」)のProgIdまたはCLSIDとは何ですか

.NETを使用して、MicrosoftのIActiveScript規則に準拠するスクリプトエンジンをホストするアプリを作成できます。これには、MicrosoftのJScriptとVBScript、およびPerlScript、RubyScriptが含まれ、サードパーティの他に何があるかわかりません

コードでそれを行う方法は次のようなものです:

ここで、progIdはJavascript、JScript、ECMAScript、VBScriptなどの値をとることができます。コマンドラインでオプションを指定してprogIdを指定すると、cscript.exeを実行するときに同様のことができ//Eます。たとえば、次のコマンドは次のとおりです。

..拡張子に関係なく、指定されたファイルをJScriptエンジンを介して実行します。

私のマシンでは、を見るとHKLM\SW\Classes\、3つのprogId {Javascript、JScript、ECMAScript}はすべて同じCLSIDを指しています。これは、JScript5.8スクリプトエンジンだと思います。{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}

IE9のJavascriptエンジン(別名「チャクラ」)を実行するために指定できるProgIdまたはCLSIDはありますか?

IE9のエンジンはまだIActiveScriptによってロードされますか?
Microsoftのドキュメントでは、ProgIdまたはCLSIDは指定されていませんが、指定されていることが示されています。

0 投票する
2 に答える
1365 参照

c# - IE9 の JavaScript エンジン (「チャクラ」) を実装する IActiveScript のインスタンスは、Quirks モードで動作します。

CLSID "{16d51579-a30b-4c8b-a276-0ff4dc41e755}" (ここで説明) に基づいて IActiveScript のインスタンスを作成することにより、Quirks モードで動作する IE9 の JavaScript エンジンを取得します。残念ながら、Quirks モードでは ECMAScript 5 はサポートされていません。

IE9標準モードで動作する「チャクラ」用のIActiveScriptのインスタンスを作成する方法を知っている人はいますか?

0 投票する
1 に答える
403 参照

internet-explorer-9 - IE9 JS エンジン (チャクラ) を使用して SCRIPTITEM_CODEONLY シンボルを追加する際のエラー

以前の JScript エンジン (CLSID_JScript) でしばらくの間、ブラウザー拡張機能 (BHO) でアクティブ スクリプトを使用してきましたが、最近、新しい IE9 スクリプト エンジン (Chakra) も​​サポートすることにしました。私たちが行うことの 1 つは、独自のモジュール (名前空間) を作成するオプションを使用AddNamedItemしてエンジンにシンボルを追加することです。SCRIPTITEM_CODEONLY残念ながら、これを Chakra で動作させることはできませんでした。シンボルを追加してすぐにそのスクリプト ディスパッチを取得する最も単純な例でさえ、E_OUTOFMEMORYエラーが発生します。

GetScriptDispatch呼び出しはエラーを返します。例全体は Github で見ることができます。

すべてのメソッドにブレークポイントを設定しましたが、呼び出されるのはとIActiveScriptSiteだけなので、サイトの実装が問題だとは思わないでください。GetLCIDOnStateChange

私は見つけることができるすべての例を見て、エンジンの状態をSCRIPTSTATE_CONNECTED手動で設定すること、QI対象の追加のインターフェースを実装することなど、考えられるすべてを試しましたLCID。何も違いはないようです。

何が与えられますか?この基本的な例は Chakra で機能すると思います。

0 投票する
1 に答える
197 参照

c++ - IActiveScript プロファイリング - スクリプト ソースの表示

IE の JavaScript Chakra エンジンで遊んでいます。

MSDN からサンプル コードをダウンロードしました。関数 ID とスクリプト ID しかない場合に関数ソースを取得する方法を見つけようとしています。

js スクリプトのプロファイリングを開始し、プロファイラー ( IActiveScriptProfilerCallback2) の出力から、どの関数がコンパイルされ、呼び出されているかを確認できます...

たとえば、コールバックはFunctionCompiled次のようになります。関数 ID とスクリプト ID、さらには関数名も取得できますが、関数のソース コードを見つける方法がわかりません。

0 投票する
0 に答える
250 参照

c++ - IE で現在のページの IActiveScript を取得する

IE プラグイン (BHO) があり、スクリプト エンジンにアクセスしたいと考えています。

プロファイリングを開始したいので、IActiveScriptおそらくインターフェイス ポインターが必要です。

私はIWebBrowser2ポインターを持っています。そこからIHTMLDocument( get_Document) を取得してクエリを実行しましたがIActiveScriptIActiveScriptSite成功しませんでした。

も試しIHTMLDocument->get_Scriptましたが、スクリプト ポインターのみを返しIDispatchます (と同じIActiveScript::GetScriptDispatch)。

0 投票する
1 に答える
1654 参照

c++ - C++ で IActiveScript を使用して cscript を実行する

cscriptwith IActiveScriptParseandを使用してスクリプトを実行しようとしていますParseScriptTextが、何らかの理由でエラーが発生します: E_UNEXPECTED

この記事は私を大いに助けてくれました。私はgetEngineGuid自分のコードでその機能を使用しています。

以下のコードは私が試したものです。それは印刷します:

意味は をactiveScriptParse->ParseScriptText返しますE_UNEXPECTED。それで、私は何を間違っていますか?

どうもありがとう!

0 投票する
1 に答える
81 参照

javascript - ネイティブ COM メソッドを jscript のファースト クラス シチズンとして機能させる

私のアプリケーションは jscript ( IActiveScript、IE9) をホストしています。インターフェイス(デュアル、IDispatch)をエクスポートします(以下を参照)。jscriptから呼び出すことができます:

しかし、それを別の関数に渡す (または変数に代入する) ことはできません:

質問: ネイティブ関数をプロパティのように見せるにはどうすればよいですか?

インターフェース:

そのインターフェースの実装は次のとおりです。