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

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

Разработка » Перехват XMLHTTPRequest запросов и ответов на них. » 03-01-2012 01:31:59

Планирую расширение для сайта использующего XMLHTTPRequest, ранее с ним работать не приходилось и возникли трудности. По задумке -  нужно отследить запрос на сервер, если он из тех что требуется то перехватить  и ответ на него, но покачто не подобрал даже какие события надо слушать,  нет ли статьи на русском где это описано?  В расширение Firebug найти ответа не вышло, как-то там много всего.  :rolleyes:

Разработка » Как получить содержимое странички после выполнения JS, и с тегами? » 12-11-2010 13:49:09

MySh
Там не показано как посмотреть страничку после работы JS :(

Разработка » Как получить содержимое странички после выполнения JS, и с тегами? » 01-11-2010 13:19:50

Здравствуйте!
Как можно получить содержимое странички после выполнения JS, но  со ссылками и другими тегами?
С document.body.innerHTML я получаю полное содержание, но с ещё не выполненным JS, а используя document.body.textContent удаляются теги,  и JS не выполняется... остаются конструкции вида:

Выделить код

Код:

unescape("%63%3d%35%26%62%3d%30%66%33%63%39%63")

:rolleyes:

Разработка » Альтернативное кеширование в фаерфоксе » 19-01-2010 08:18:30

SunnyDay пишет

Можно ли из плагина например работать с локальными файлами?

Да, можно. С помощью такого файлика достаточно легко получается.
http://kb.mozillazine.org/Dev_:_Extensi … _IO_:_jsio

Разработка » эмуляция нажатия клавиатуры » 11-01-2010 21:43:24

хех, я в другом месте пробовал менять :blush:
Спасибо.

Разработка » эмуляция нажатия клавиатуры » 11-01-2010 20:52:56

Спасибо, Антон, код работает.
Но я забыл уточнить, что это не для ввода символов требуется, а для навигации по сайту. Если курсор не в поле ввода то код не срабатывает. :dumb:
Есть какое-нибудь решение?

Разработка » эмуляция нажатия клавиатуры » 11-01-2010 15:17:16

Как в FireFox  можно программно "нажимать" заданную клавишу?
Т.е. с имитировать нажатие для активной вкладки?

Разработка » Обращение к фрейму из расширения по имени. » 21-09-2009 16:53:09

Нужно менять содержимое фреймов из расширения, а их количество периодически меняется и обращаться по номеру нельзя.
Нужно по имени, но не получается :(

Так примерно выглядит страничка:
[code]<html>

<frameset rows="50,*,30" frameborder="No" framespacing="0" border="0">
<frame name="menu" src="menu.php" marginwidth="0" marginheight="0" scrolling="No" frameborder="No" noresize></frame>
<frameset rows="65%,35%" frameborder="Yes" framespacing="1" border="1">
  <frameset cols="174,65%,35%,10" frameborder="No" framespacing="0" border="0">
   <frame name="geto" src="geto.php?g=0" marginwidth="0" marginheight="0" scrolling="No" frameborder="No"></frame>
   <frame name="germe" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="No"></frame>

<frame name="item" marginwidth="0" marginheight="0" scrolling="Auto" frameborder="No"></frame>
  <frame name="berrigt" src="berright.html" marginwidth="0" marginheight="0" scrolling="No" frameborder="No"></frame>
  </frameset>
  <frame name="

Скрипты » Greasemonkey » 21-09-2009 12:15:20

Попробовал удалить фрейм конструкцией типа:

Выделить код

Код:

var id;

     id = document.getElementById('menu');
        if (id) {
            id.parentNode.removeChild(id);
              }

где "menu" - это название фрейма.
Но не вышло. Как это сделать правильно?

Разработка » Запуск функции из контента. » 22-06-2009 16:56:04

Если я правильно понял вопрос, то так:

Выделить код

Код:

content.document.location.href = "javascript:void foo()";

Разработка » Передача referrer при работе с фреймом » 08-06-2009 16:08:09

По моему

Anton пишет

В принцие, решаемая: https://developer.mozilla.org/en/Creating_Sandboxed_HTTP_Connections#HTTP_referrer
Но сначала можно попробовать изменить document.referrer у документа фрейма.

document.referrer - неизменяемый вроде. У меня при попытке заменить значение стопарился код в этом месте.
А с первым не получается, не понимаю как сработать должно.

Разработка » Передача referrer при работе с фреймом » 02-06-2009 12:35:59

При использовании

Выделить код

Код:

content.***.location.href="URL";

расширение открывает страницу в заданном фрейме, но при этом referrer пустой.
Есть метод  loadURI(), в нём можно задавать referrer, но не получается указать фрейм в котором должна открыться страница.
Как сделать так чтобы страница открывалась во фрейме и при этом передавалась страничка с которой она загружена? :)

Разработка » Проблемы кодировки при передаче данных методом post из расширения. » 17-12-2008 13:23:15

Пишу в расширении функцию отправки данных на сайт. Т.к. объём может быть большой, то использую метод POST.
  Всё работает, но возникла проблема  с кодировкой. Данные отправляются в кодировке Windows-1251, приходит абракодабра. Использовал приведённый на форуме перекодировщик, не помогло, приходит тоже абракодабра, но другая.

В чём может быть моя ошибка?


Конвертор:

Выделить код

Код:

function convertor(str)
{
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]
                          .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
converter.charset = "Windows-1251";//"windows-1251"
str = converter.ConvertFromUnicode(str);
return str;
}

Отправка данных.
[code]var hey='Сообщить о событии';
var name='Название на кириллице';
var text='Текст, тоже на кириллице ';

var http = new XMLHttpRequest();
var postdata= "name="+convertor(name)+"&safe="+hey+"&text="+convertor(text)+"&tip=4&action=post";

http.open("POST", "http://forum.mozilla-rus

Разработка » Преведение переменной к типу nsIURI для функции loadURI » 15-12-2008 01:06:40

Infocatcher, спасибо. К типу nsIURI преобразовывает, по крайней мере на alert переменной uri пишет: [xpconnect wrapped nsIURI]

Но вот перехода не происходит :(

Выделить код

Код:

var uri = makeURI('http://forum.mozilla-russia.org');
//var uri = makeURI(String(window. getBrowser (). contentDocument. location. href));
var href = "http://forum.mozilla-russia.org";
loadURI(href, null, uri);
alert(uri);

В чём может быть проблема?

Разработка » Преведение переменной к типу nsIURI для функции loadURI » 15-12-2008 00:00:10

Нужно перейти на страничку и передать URI ссылающегося документа, но почему-то referrer нужно передавать в формате nsIURI.
Собственно, как преобразовать строку к типу nsIURI? 

Выделить код

Код:

var loc = String(window. getBrowser (). contentDocument. location. href);
var href = "http://forum.mozilla-russia.org";
loadURI(href, null, loc);

Разработка » Выполнение действия после загрузки странички. » 24-11-2008 10:35:21

С тем что  я оказывается каждый раз создаю ещё одного слушателя события разобрался. :dumb:

Разработка » Выполнение действия после загрузки странички. » 24-11-2008 00:23:58

Shutnik пишет

я использую такой метод и никаких проблем не встретил

Спасибо, Shutnik. Тогда просмотрел тему, но не разобрался. 
Но после того как ткнули носом всё увидел и понял, что это ОНО :)


Правда не получается использовать это нужным образом.
[code]function my_unload_listener(){ alert("beforeunload");
}

    function my_load_listener (event)
    {
        var doc = event.originalTarget;
        var win = getBrowser().selectedBrowser.contentDocument;
        if(doc == win)
        { //alert("load");
rr=123;
            // активный таб
        }
    }
var rr=0;
function rrr(){
        var appcontent = document.getElementById("appcontent");
        if(!appcontent)
            return;
        appcontent.addEventListener("load", my_load_listener, true);
        appcontent.addEventListener("beforeunload", my_unload_listener, true);
}
loadURI ("forum.mozilla-russia.org", null, null);
rrr();

Разработка » Выполнение действия после загрузки странички. » 23-11-2008 22:10:24

Задача, сразу после загрузки странички на активной вкладке начать выполнять некие действия.
Сразу - это десятые доли секунды :)

Используя команду вида:

Выделить код

Код:

function pageSwitched(){
alert("Страничка загружена, продолжаю работать.");
}
getBrowser().addEventListener("load", pageSwitched(), false);

можно проверить состояние странички на момент вызова.
По идее должна вызываться сразу после команды перехода по заданному адресу.
Но если нажать, к примеру F5, а потом запустить проверку - то скажет, что страничка загружена, т.к. это ещё старая страничка и переход не успел начаться. 
Это первая проблема.

Вторая в том что если загрузка новой странички началась то команда по окончании загрузки не выполнится. 

Как это можно решить? Пока есть лишь вариант запуска проверки в цикле, но вдруг есть более интересные варианты? :angel:

Содержимое и адрес странички активной вкладки может и не измениться, при переходе. :whiteflag:

Разработка » вытащить все ссылки с активной вкладки » 19-11-2008 21:57:26

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

Выделить код

Код:

content.document.links[i].textContent

.
Или так будет менее производительно?

Разработка » вытащить все ссылки с активной вкладки » 19-11-2008 20:51:07

Спасибо, теперь полный набор :)

А как можно захватить ещё и фреймы на страничке? :whiteflag:

19-11-2008 21:06:31
Т.е. во фреймах тоже ссылки есть, но приведёнными выше способами они не доступны.

Board footer

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