2

NPAPIプラグイン内からjavascriptオブジェクトのプロパティをフェッチしようとしていますが、NPN_HasProperty()、NPN_HasMethod()、NPN_Enumerate()とそれらが返すもの、および返されないものに問題があります。

例として、x =newArrayで配列を作成するとします。Javascript x.hasOwnProperty('length')はtrueを返し、'length'のNPN_HasProperty()はtrueを返しますが、NPN_Enumerateは、予想どおり、このプロパティをリストしません。

関連する問題で、オブジェクトが関数であるかどうかを検出したいと思います。NPAPIプラグインでこれを行う方法に関する提案はありますか?NPN_HasMethod('call')を呼び出そうとしていますが、これはfalseを返します('call'はプロトタイプで定義されているためですか?)プラグインが継承に従う、または「xinstanceofFunction」と同等のものを実行する方法はありますか? 。?

プロパティを列挙する方法、特に継承グラフをたどる方法に関する詳細情報は、大歓迎です。

4

1 に答える 1

1

NPN_Enumerateは面白いものです。これはNPN_Constructと同時に導入され、少なくとも多くのブラウザーでは、ネイティブのjavascriptオブジェクトでは機能しません。これらは主に、NPObjectの列挙または構築を可能にするために提供されています。

私はあなたが実際にその特定の質問をするスレッドであなたの他の質問にすでに答えました。混乱を避けるために、ここでは一度に1つの質問に制限するのが最善です。

プロパティを列挙し、配列またはコンマ区切りの文字列を返すNPN_Evaluateを使用してページにjavascript関数を挿入する必要がある場合は、これを行うことをお勧めします(配列を反復処理する必要があるため、少し効率的です)。 NPN_GetProperty呼び出しを行うことにより)。

于 2012-10-15T16:51:02.643 に答える