1

DOM要素のハンドルを取得する方法について読みました。これは非常に役立つリンクでした:http://forums.mozillazine.org/viewtopic.php?f = 27&t = 1521545

私の質問は、作成したJavascript変数/オブジェクトまたは任意の関数のハンドルを取得できますか?

ページの読み込み時に、次のようなスクリプトを実行しています...

var controller = new Controller()

また

function callme(param1, param2) { ... }

ここで、プラグイン内から、コントローラーオブジェクトからメソッドを呼び出せるようにしたいと思います。または、その関数callmeを実行します。これは可能ですか?どうすればこれを行うことができますか?

ありがとう、

クリス

4

1 に答える 1

7

リンクから、DOMウィンドウのNPObjectを取得する方法を知っています。そこから知っておく必要があるのは、すべてのグローバルjavascript変数が実際にはウィンドウのプロパティであるということだけです。

var controller = new Controller();

グローバルスコープでこれを行った場合、window.controllerが変数であるため、次のことを行う必要があります。

/* Get window object */
NPObject* window = NULL;
NPN_GetValue(aInstance, NPNVWindowNPObject, &window);

/* Get document object */
NPVariant controllerVar;
NPIdentifier id = NPN_GetStringIdentifier("controller");
NPN_GetProperty(aInstance, window, id, &controllerVar);
NPObject* document = NPVARIANT_TO_OBJECT(controllerVar);

その後、オブジェクトのプロパティにアクセスしControllerたり、メソッドを呼び出したりできます。コントローラが関数の場合は、で呼び出すことができることに注意してくださいNPN_InvokeDefault

ところで、FireBreathはこれのほとんどを自動化します。

于 2011-01-05T16:40:13.690 に答える