Xpoint
   [напомнить пароль]

Зарегистрировать собственную JS функцию

Метки: [без меток]
2007-07-12 14:45:43 [обр] Егор Привалов[досье]
сообщение промодерировано

Доброе время суток!

Есть программа, которая использует движок Gecko,
все успешно, но возникло небольшое затруднение с регистрацией собственных JS функций.

Регистрация проходит успешно, но функция регистрируется только для текущей страницы.
при переходе на следующую страницу приходится перерегистрировать функицю по новой.
для регистрации используется вот такой код:

...
nsCOMPtr<nsIScriptGlobalObjectOwner> ScriptOwner(do_GetInterface(WebBrowser, &rv));
nsCOMPtr<nsIScriptGlobalObject> script;
rv = ScriptOwner->GetScriptGlobalObject(getter_AddRefs(script));
nsIScriptContext* ctx = script->GetContext();
JSFunction *ok = JS_DefineFunction((JSContext*)ctx->GetNativeContext(),
   script->GetGlobalJSObject(), "MySuperFunction", MySuperFunction, 1, 0);
...

Как можно зарегистрировать JS функцию глобально, т.е. чтобы регистрация при переходе на новую страницу не сбрасывалась?
Подскажите, в какую сторону двигатся.

спустя 4 дня [обр] Владимир Палант(434/4445)[досье]
сообщение промодерировано

Почитайте эту статью: http://weblogs.mozillazine.org/weirdal/archives/017188.html

Регистрировать глобальные функции таким образом нельзя, но можно добавить глобальное свойство — которое может быть объектом со всеми нужными методами. Таким образом к примеру зарегистрирован глобальный объект sidebar.

Powered by POEM™ Engine Copyright © 2002-2005