Страницы: 1
Необходимо сделать textbox для поиска. по типу стандартного поиска у ФФ. чтобы можно было в списке выбрать поисковик. но не найду как это сделать?
можно ли слевой стороны привязать иконку к текстбоксу?
как в textbox обработать нажатие enter?
Создал расширение(dll), в ФФ все работает, можно ли его как-нибуди заставить работать в опере?
В SDK его нет, но он есть в компонентах....
Задача такая: из яваскрипта вызывается XPCOM ф-ция(с++), которая порождает новый процесс. Этот процесс что-то делает и, скажем, кидает событие в яву, что я завершился. как сделать?
Процесс создал, все нормально, Но как теперь корректно кинуть событие, чтобы ява нормально отработала?? Пытаюсь сделать с помощью IobserverService, но вот не задача, когда я кидаю сообщение из основного потока - все работает, а когда из порожденного - вешается ФФ на строке:
observerService->NotifyObservers(NULL, "MyCommand", NULL);
В общем, не могу из порожденного вызвать явовский скрипт :-(
сделал так:
[scriptable, uuid()]
interface ICallBack : nsISupports
{
void OnFinish(in long res);
void OnProcess(in long res);
};
interface ISpecialThing : nsISupports
{
attribute ICallBack cb;
};
class CSpecialThing : public ISpecialThing{
void DoJavaProcess(PRInt32 p);
ICallBack *cb;
}
CSpecialThing::DoJavaProcess(PRInt32 p){
if(p==1)
cb->OnFinish(1);
else cb->OnProcess(1);
}
var listener = {
OnProcess : function(res) {
alert(res);
},
OnFinish : function(res) {
alert(res);
}
}
doc = window.document;
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const cid = "@starkravingfinkle.org/specialthing;1";
obj = Components.classes[cid].createInstance();
obj = obj.QueryInterface(Components.interfaces.ISpecialThing);
obj.cb = listener;
}
catch (err) {
alert(err);
exit();
}
и внутри XPCOM пытаюсь вызвать DoJavaProcess
DoJavaProcess(1);
когда дохожу до строчки cb->OnFinish(1);
падает ФФ
Хелп, плз!
нигде не могу найти ответ....
Помогите, плз! Смысл прост: я вызываю функцию, расширение что-то делает, а мозилла показывает какой-нить прогресс бар с кнопочкой прервать. как это сделать? замучался уже :-(
Создал XPCOM расширение, в интерфейсе которого есть ф-ция Func1(arg);
если я из скрипта вызываю ее
var res = Func1(arg);
FF вешается, пока ф-ция не отработает. Как этого избежать? как в бэкграунде запустить выполнение и ждать завершения?
shutnik
не то... мне с xpcom надо разобраться... потом уже xul
Дело в том, что я только начал изучать xpcom, меня, желательно ткнуть в примерчик!
и еще вопрос: если я вызываю ф-wb. из ява скрипта, ФФ подвисает, надо делать callbak ф-цию, видимо. Скажите, в каком направлении копать?
Все решилось гораздо проще!
Я сам, тупица, вместо *.xpt клал в компоненты *.exp
Остается один актульный вопрос: Делаю кнопку, накоторую вешаю ява скрипт. Ява скрипт из моего интерфейса дергает функцию из моего интерфейса, как мне реализовать прогресс бар с возможностью прервать операцию???
Замучался уже...
var obj = Components.classes[cid].createInstance();
здесь все нормально. Встаю отладчиком, конструктор вызывается — все гуд? все работает!
obj = obj.QueryInterface(Components.interfaces.ISpecialThing);
здесь падаем... опять этот нул.... в чем может быть дело?
сделал так:
var obj = Components.classes[cid].createInstance();
alert(Components.interfaces.ISpecialThing);
Получаю сообщение: undefined. Приплыли...
Сделал все как описано в статье http://developer.mozilla.org/en/docs/How_to_build_a_binary_XPCOM_component_using_Visual_Studio
Сделал скрипт:
try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); const cid = "@starkravingfinkle.org/specialthing;1"; var obj = Components.classes[cid].createInstance(); obj = obj.QueryInterface(Components.interfaces.ISpecialThing); // на этой строчке получаю исключение: NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF //(NULL can not be used for a c++ reference type) } catch (err) { alert(err); return; } var res = obj.add(3, 4); alert('3+4 = ' + res); var name = obj.name; alert('Name = ' + name); obj.name = 'New Name'; name = obj.name; alert('Name = ' + name);
что это за исключение, почему и как с ним бороться?
У меня стоит:
gecko-sdk-win32-msvc-1.8.0.4.zip
firefox 1.5
Visual Studio 2005
Попутно пара вопросов:
1. Нужно организовать функцию Init и подгрузить пару библиотек. Как эт
Страницы: 1