не могу обратится к полученным через 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);

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

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

hydrolizer пишет

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

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

hydrolizer пишет

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

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

hydrolizer пишет

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

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



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

sixis пишет

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

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