Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

Разработка » Возможно ли из XPCOM-плугина добраться до nsIWebNavigation? » 08-07-2008 20:46:59

Подскажите, возможно ли из XPCOM-плугина добраться до nsIWebNavigation?
Везде куча примеров для Embedding Gecko на с++, но как быть если у тебя плагин?
На JavaScript все просто.. а на С++ (не Embedding) ни одного примера!

Не получается сделать по сути простейщее действие - хочется обновить страницу (вызвать метод reload из nsIWebNavigation) при определенных условиях.

Помогите кто чем может, :beer:

Разработка » Отловить событие при попытке редиректа на XPCom » 05-07-2008 01:24:13

Спасибо за комментарий, решил делать по другому, на форме создал кнопку и прописал в событии onClick вызов своей функции, которую разместил в js.
Более подробно в этой теме: http://forum.mozilla-russia.org/viewtopic.php?id=24677

Разработка » Средствами XPCOM или JavaScript подписаться на событие нажатия кнопки » 05-07-2008 01:22:57

Возможно ли средствами XPCOM или JavaScript подписаться на событие нажатия кнопки?
После загрузки страницы, к ней можно получить доступ через объектную модель. Позволяет ли эта модель делать вот такие вещи? (Далее пример из Internet Explorer)

Выделить код

Код:

CComQIPtr<IHTMLDocument3> spDoc3;
CComPtr<IHTMLElement> pButton;
spDoc3->getElementById ( CComBSTR(_T("здесь id кнопки") ), &pButton );
pButton->onclick = НАШ_ОБРАБОТЧИК

НАШ_ОБРАБОТЧИК хочется размещать внутри XPCOM или JavaScript.

Сейчас у меня сделано следующим образом:
HTML

Выделить код

Код:

<HTML>
<SCRIPT SRC="test.js"></SCRIPT>
<BODY>
<input type="text" id="input_txt" value="">
<input type="button" value="Submit" onclick="CheckVal();">
</BODY>
</HTML>

JS
[code]function CheckVal() {
    try {
        netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        const cid = "@бла-бла-бла/бла;1";
        obj = Components.classes[cid].createInstance();
        obj = obj.QueryInterface(Components.interfaces.IMyCom);
    } catch (err) {
        alert(err)

Разработка » Отловить событие при попытке редиректа на XPCom » 03-07-2008 04:23:51

Приветсвую!

Пишу плугин на XPCom (С++), задача следующая:
Есть html-страничка примерно такая:

<form action="http://site.ru/" method="post">
    <input type="text" name="value" value=""/>
    <input type="submit" value="Submit" />
</form>

Нужно отловить момент когда происходит заполнение post-запроса и попытка его отправки на сервер.
Мне нужно прочитать передаваемые значения и в зависимости от их содержимого либо разрешить отправку, либо остановить редирект не обновляя страницу.

Посоветуйте в каком интерфейсе это можно сделать?
Смотрел исходники firefox и нашел что что-то похоже происходит в nsHttpChannel.cpp в функции [code]sHttpChannel::ProcessRedirection(PRUint32 redirectType){
.............................
// здесь какая-то подготовка к загрузке новой страницы
.............................
// call out to the event sink to notify it of this redirection.
    if (mHttpEventSink) {
        rv = mHttpEventSink->OnRedirect(this, newChannel);
        if (NS_FAILED(rv)) return rv;
    }
....

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]