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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№102-04-2011 16:49:38

sixis
Участник
 
Группа: Members
Зарегистрирован: 29-06-2009
Сообщений: 3
UA: Firefox 4.0

как обработать ответ xmlhttprequest?

не могу обратится к полученным через xmlhttprequest элементам

код для расширения к лисе

Выделить код

Код:

var opm = {
    init: function() {
    var appcontent = document.getElementById("appcontent");
        if(appcontent)
        appcontent.addEventListener("DOMContentLoaded", opm.onLoad, true);
    },
    onLoad: function(aEvent){
    var doc = aEvent.originalTarget;
        if(~doc.location.href.search('http://www.google.ru/'))
        opm.mf(doc);
    },
    mf: function(doc){
    loadPage('http://www.google.ru/');
    
        function loadPage(url){
        var mXML = new XMLHttpRequest();
        mXML.onreadystatechange = function(){
            if(this.readyState == 4){
            if(this.status == 200 || this.status == 0){
                resp(mXML.responseText);
            }
            }
        };
        mXML.open('GET', url, true);
        mXML.send(null);
    }
    function resp(text){
        try{
        var div = doc.createElement("div");
            div.innerHTML = text;
            div.getElementById("lst-xbtn");
            //Здесь ошибка!
            //TypeError: div.getElementById is not a function
            //
        }catch(e){
        alert(e)
        }
    }
    }
};

window.addEventListener("load", function () { opm.init(); }, false);

Подскажите, что я делаю не так.

Отсутствует

 

№202-04-2011 21:34:04

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 4.0

Re: как обработать ответ xmlhttprequest?

sixis
А при чем здесь XMLHttpRequest? Ошибка в том, что метод getElementById относится только к интерфейсу Document, а не к интерфейсу Node или Element - а вы вызываете метод на элементе. Это во-первых. Во-вторых, пытаться искать элемент, не принадлежащий к DOM-дереву документа смысла нет - не найдёте. Сначала присоедините созданный элемент к документу, потом на документе вызывайте getElementById.

Отсутствует

 

№302-04-2011 21:52:48

sixis
Участник
 
Группа: Members
Зарегистрирован: 29-06-2009
Сообщений: 3
UA: Firefox 4.0

Re: как обработать ответ xmlhttprequest?

hydrolizer пишет

метод getElementById относится только к интерфейсу Document

не знал этого.    спасибо!

hydrolizer пишет

пытаться искать элемент, не принадлежащий к DOM-дереву документа смысла нет - не найдёте

и все же getElementsByTagName находит

hydrolizer пишет

Сначала присоедините созданный элемент к документу

если присоединю к странице, то отобразится весь реквест в innerHTML, а мне нужна только часть



в общем проблему решил по другому, всем спасибо.

Отсутствует

 

№403-04-2011 03:26:33

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 4.0

Re: как обработать ответ xmlhttprequest?

sixis пишет

и все же getElementsByTagName находит

Почитайте документацию. Метод getElementsByTagName относится к интерфейсу Element, наследником которого является интерфейс Document (ну, точнее, Document расширяет интерфейс Element - всё вполне в соответствии с канонами ООП).

Отсутствует

 

Board footer

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