Страницы: 1
С моим никаким английским? документация кажется непролазными дебрями.
Может кто нибудь в двух словах пояснить связь между длл плагина, его js файлом и .xul файлом(я вижу в примере overlay.xul). Какой для чего? Я так понимаю, одни и те же вещи можно делать в js скрипте, и в dll? Так вот, где что лучше делать?
Я уже задавал конкретный вопрос, но, наверное, некорректно. Да и ответ не понял, похоже.
это здесь: http://forum.mozilla-russia.org/viewtopic.php?id=59114
ДА, в js ни разу не разбираюсь, чистый сиплюсплюсник.
А почему вдруг nsIWebProgressListener не работает?
[code]NS_IMETHODIMP
FFExtension::OnStateChange(
nsIWebProgress *aWebProgress,
nsIRequest *aRequest,
PRUint32 aStateFlags,
nsresult aStatus
)
{
#pragma warning(push)
#pragma warning(disable : 4127)
NS_ENSURE_ARG_POINTER(aWebProgress);
#pragma warning(pop)
log4cplus::Logger logger = log4cplus::Logger::getInstance(
LOG4CPLUS_TEXT("OnStateChange"));
nsresult rv = NS_ERROR_FAILURE;
nsCOMPtr<nsIDOMWindow> domwin;
nsCOMPtr<nsIDOMDocument> domDoc;
aWebProgress->GetDOMWindow(getter_AddRefs(domwin));
domwin->GetDocument(getter_AddRefs(domDoc));
nsCOMPtr<nsIDOMWindow> domTopWin;
domwin->GetTop(getter_AddRefs(domTopWin));
if (domwin.get() != domTopWin.get()) {
// this is a frame.
LOG4CPLUS_DEBUG(logger, "this is a frame ");
if(aRequest)
{
nsCAutoString url;
aRequest->GetName(url);
LOG4CPLUS_DE
Спасибо, вроде бы действительно то. WebProgressListeners вариант не работает. Наверное "The Easy Way: Load Events" Только непонятно, какой интерфейс должен поддерживать load event, мне ж на с++ писать
Поддерживаю плагин ff на c++, сам никогда их разработкой не занимался.
В плагине требуется перехватить загрузку фрейма, получить доступ к его url, и , если надо(если mailto), предотвратить загрузку.
Сейчас там инициируется и отслеживается загрузка страниц, используются nsIObserver и nsIWebProgressListener.
Если их и можно, использовать для перехвата и управления загрузкой фреймов, то я не понял как. Подскажите, пожалуйста.
Страницы: 1