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

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

№121-06-2010 19:10:18

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Как получить отрендеренный контент страницы

есть код

Выделить код

Код:

window.addEventListener("load",function(){
    gBrowser.addEventListener("DOMContentLoaded", function(aEvent){SomeEvent(aEvent);}, false);    
},false);


function SomeEvent(aEvent)
{

}

Вопрос: как в функции  SomeEvent получить отренедеренный контент страницы, тоесть без html тегов и с уже выполненным JS.
Спасибо.

Отсутствует

 

№222-06-2010 10:03:02

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

причем здесь картинка? нужно получить текст со страницы.

Отсутствует

 

№322-06-2010 10:34:14

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

или подскажите где можно почитать про обьект aEvent  корторый передается в SomeEvent(). документацию не получилось найти

Отсутствует

 

№422-06-2010 11:13:25

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

и еще вопрос, можно ли из плагина отправить AJAX запрос на сторонний сервер. необходимо передать информацию. пробую, не получается.

Отсутствует

 

№523-06-2010 16:14:39

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

почему не могу получить доступ к window.document.body.innerText?

Отсутствует

 

№623-06-2010 16:25:07

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Как получить отрендеренный контент страницы

k0s пишет

и еще вопрос, можно ли из плагина отправить AJAX запрос на сторонний сервер.

А есть ещё и несторонний какой-то?
Под плагином вы имеете в виду расширение, наверное.
Можно.

k0s пишет

почему не могу получить доступ к window.document.body.innerText?

Потому что undefined, вестимо. Используйте document.body.textContent

Отсутствует

 

№723-06-2010 17:46:34

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

luitzen пишет

Можно.

Как?

пробую так

Выделить код

Код:

function getXmlHttp()
{
    var xmlhttp;
    try 
    {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) 
    {
        try 
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (E) 
        {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
        xmlhttp = new XMLHttpRequest();

    return xmlhttp;
}

function sendRequest(url, query)
{

    var httpRequest = getXmlHttp();
    var timeout;

    if(query == null)
        httpRequest.open('GET', url, true);
    else
        httpRequest.open('POST', url, true);
    
    httpRequest.onreadystatechange = function(){
        

        if (httpRequest.readyState != 4)
            return;
        
        clearTimeout(timeout);
    
        alert("State: "+httpRequest.status);
        //if (httpRequest.status == 200)
        
            alert(httpRequest.responseText);
    }

    if(query != null)
        httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
    httpRequest.send(query);


    timeout = setTimeout(function(){
        try{
            httpRequest.abort();
        
        }catch(e){}
    }, 30000);  // таймаут

    
}

но httpRequest.status  всегда равен 0

luitzen пишет

Используйте document.body.textContent

вылетает ошибка TypeError: document.body has no properties

Отсутствует

 

№823-06-2010 18:12:16

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Как получить отрендеренный контент страницы

k0s пишет

вылетает ошибка TypeError: document.body has no properties

Вы, наверное, в chrome mode это делаете? Там как-то так:

Выделить код

Код:

gBrowser.contentDocument.body.textContent
k0s пишет

скрытый текст

Выделить код

Код:

try 
    {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) 
    {
        try 
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } 
        catch (E) 
        {
            xmlhttp = false;
        }
    }

Потрудитесь построить минимальный пример, пожалуйста :).

Отсутствует

 

№923-06-2010 18:42:14

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

luitzen пишет

Потрудитесь построить минимальный пример, пожалуйста .

Минимальный пример чего? яж написал код как я пробую, пробовал JQUERY подключать, всерн запрос не выполняется

Отсутствует

 

№1023-06-2010 19:28:10

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Как получить отрендеренный контент страницы

k0s пишет

Минимальный пример чего?

Вашей проблемы. Без проверки на микрософтовость, без выбора между 'GET' и 'POST', без таймаутов. Это упростило бы просмотр вашего кода и увеличило бы количество желающих это сделать :).

Пока что, бегло проскроллив ваш код, могу предложить, что вы тягаете локальный файл откуда-нибудь с "file:///C:", вот и получаете 0 вместо 200.

Отредактировано luitzen (23-06-2010 19:47:14)

Отсутствует

 

№1125-06-2010 11:16:27

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

C AJAX разобрался, спасибо. А что с получением контента страницы? gBrowser.contentDocument.body.textContent не  прокатывает. у contentDocument нет body

Отсутствует

 

№1228-06-2010 10:56:15

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

неужели никто не сталкивался с необходимостью получить содержимое страницы при разработке расширения?

Отсутствует

 

№1328-06-2010 12:37:58

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Как получить отрендеренный контент страницы

Что-то  вас неочень понимаю. Вы хотите получить «отрендеренный контент» страницы, которую берёте AJAX-запросом?

В прежнем совете подразумевался контент страницы, открытой в активной вкладке текущего окна.

Отсутствует

 

№1428-06-2010 14:53:05

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

нет, это было 2а разных вопроса. Пенрвый вопрос про AJAX я уже выяснил, остался второй как получить контент, тот который на обычной странице доступен в  window.document.body.innerText
При обращении из расширения к window.document.body.innerText там ничего нет

Отредактировано k0s (28-06-2010 14:54:41)

Отсутствует

 

№1528-06-2010 15:24:48

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Как получить отрендеренный контент страницы

k0s пишет

При обращении из расширения к window.document.body.innerText там ничего нет

Во-первых, innerText — это микрософтовский атрибут.

Во-вторых, браузер сам написан на некотором разметочном языке (XUL). В этом «xul-документе» есть свои window и document. Это не те window и document, которые есть у HTML-документа во вкладке.

Вот вы попробуйте сказать "alert(window)" в консоли ошибок. Получите не то же самое, если бы сказали "javascript: alert(window)" в адресной строке.

Почитайте про Tabbed Browser и про Working_with_windows_in_chrome_code.

Отсутствует

 

№1628-06-2010 18:03:02

k0s
Участник
 
Группа: Members
Зарегистрирован: 21-06-2010
Сообщений: 11
UA: Chrome 5.0

Re: Как получить отрендеренный контент страницы

про окна я понял. Сссылки почитал, но ответа на свой вопрос так и не нашол
есть код

Выделить код

Код:

window.addEventListener("load",function(){
    gBrowser.addEventListener("DOMContentLoaded", function(aEvent){SomeEvent(aEvent);}, false);    
},false);


function SomeEvent(aEvent)
{

}

Нужно получить контент страницы для которой вызвалась функция SomeEvent, я предполагал что он будет в aEvent но его там нет(

Отсутствует

 

№1728-06-2010 23:54:25

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 3.6

Re: Как получить отрендеренный контент страницы

С кастомной кнопки нижеследующее у меня работает. Или проблема не в этом?

Выделить код

Код:

gBrowser.addEventListener ("DOMContentLoaded", someEvent, false);

function someEvent(aEvent) {
    alert(aEvent.originalTarget.body.textContent);
}

В примерах по ссылкам слушатели вешаются на другие объекты и фильтруются фреймы.

Отсутствует

 

Board footer

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