Страницы: 1
Добрый день.
Возник вопрос. Как можно отменить стандартную загрузку браузера.
Есть код который перехватывает http ответ
var httpResponseObserver = { observe: function(subject, topic, data) { var httpChannel = subject.QueryInterface(Components.interfaces.nsIHttpChannel); if(httpChannel.originalURI.host == "tfile.ru"){ alert(httpChannel.referrer); //alert(window.document.documentURI); alert(httpChannel.getResponseHeader("Content-Type")); } //alert(httpChannel.getResponseHeader("Content-Type")); } }; var observerService = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); observerService.addObserver(httpResponseObserver, "http-on-examine-response", false );
Хочу, чтоб при определенном «Content-Type» делались действия в моем экстеншене. А стандартные браузерные отменялись.
К примеру,
Спасибо вопрос решен.
Всем привет.
Возникла проблема не могу узнать у текущей станице http status. То есть пользователь грузит в окне страницу я хочу в своем расширении получить статус 200 или 404.
Да можно взять текущую URL и сделать XMLHttpRequest но это лишний запрос.
У кого есть идеи?
Заранее спасибо
Запускаю скрипт в отдельном потоке.
var workerFactory = Components.classes["@mozilla.org/threads/workerfactory;1"] .createInstance(Components.interfaces.nsIWorkerFactory); var worker = workerFactory.newChromeWorker("chrome://test/content/send.js"); //передаю туда данные worker.postMessage({'mydata': 'test'}); //вешаю обработчик на завершение выполнения worker.onmessage = function(event) { G_Debug("Called back by the worker!\n",event.data); };
Все работает супер. Но не как не пойму как мне в send.js получить данные???? которые я передаю то есть переменную mydata
Спасибо. Очень сильно помогли. Спасибо спасибо спасибо
Понял но не работает.
http://itstorage.ru/newapp.zip вот пример я его уже по разному перекрутил. Но url после возврата хоть как появляется:(((((((
Не работает. Ошибок не выдает но xul не встает вместо пустой станицы
Как и обещал пример
http://itstorage.ru/newapp.zip
Код упрощен до минимума.
Суть проблемы таже. Открываем вторую вкладку вылезет моя xul в адресной строке пусто переходит на какой нибудь сайта. Нажимаем кнопку назад в адресной строке. Путь к xul:(((
Выдает ошибку:
Ошибка: gURLBar is not defined
Строка: 355
Содержимое строки: gURLBar.select();
Сейчас постараюсь сделать пример.
Не совсем понятно чему равно gURLBar??
В коде который выше в условие
if (newtabhomepage.prefs.getBoolPref("newtabhomepage.selectnewtab"))
не заходит.
Ход работает но при такой загрузки xul в адресной строке видно chrome://ext/content/newtab.xul.
Нашел способ как убрать данный косяк. newtab.linkedBrowser.userTypedValue = ""
Но в этом случае если в этом табе перейти на какую нибудь страницу. А после вернуться назад по кнопке back. В адресной строке опять появляться url chrome://ext/content/newtab.xul и убрать его не получается. Уже перерыл все исходники Speed Dial. Но не понимаю как там это реализовано. Может у кого нибудь есть идеи?
Заранее Спасибо
Так и сделал. Думал есть более правильный способ. Спасибо за ответ.
Добрый день.
Извиняюсь может и был такой вопрос но писк не дал результатов.
Я ради получения опыта делаю аналог Speed Dial.
Возник вопрос как он вставляет свою xul при создании нового таба? Перерыл документацию на сайте developer.mozilla.org нечего подобного не нашел.
Если вопрос глупы. Можно ткнуть носом в документацию. Заранее спасибо.
Страницы: 1