Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > обращение из фрэйма к родительскому блоку


Автор: insy 6.10.2009, 09:50
Доброго всем времени суток!Помогите пожалуйста разобраться! 
у меня есть обращение к странице, которая находится в iframe'e

Код

<span onclick="javascript:loadPage('7','summary', this ,20)">20</span>


а вот собственно сама функция

Код

function loadPage(num, kind, curr_object, pageNo) {
    if(curr_object){
        setActive(curr_object.parentNode);
    }

    var page = $('new_page');
    switch(kind) {
        case 'summary':
            page.src = siteURL + 'summary_pasports/showinfolpubysection/' + num + '/' + pageNo;
            break;
        case 'stat':
            page.src = siteURL + 'statistics/nextstep/' + num;
            break;
    }
}


мне нужно, чтобы в iframe'e я мог при нажатии на ссылки перемещаться между страницами(делаю pagination). 
Страничка подгружается аяксом...
В данный момент ничего не работает, потому что страница находится в iframe'e, так вот, 
Как мне указать родительский блок?
Надо что-то дописать в 
Код

<span onclick="javascript:loadPage('7','summary', this ,20)">20</span>

Автор: Grig 7.10.2009, 06:45
так?
Код

<span onclick="javascript:window.parent.loadPage('7','summary', this ,20)">20</span>

Автор: insy 7.10.2009, 09:50
Код

<span onclick="javascript:window.parent.loadPage('7','summary', this ,20)">20</span>

не хочет, эмоций 0 :(

Автор: Grig 7.10.2009, 10:01
погоди, что находится во фрейме, а что в родителе?

Добавлено через 21 секунду
лучше выложи весь код

Автор: insy 7.10.2009, 10:19
Все ничт, спасибо разобрался, просто изначально в синтаксисе ошибсяsmile как только дойду до сотни с меня поинтsmile

Автор: insy 7.10.2009, 10:45
Да, еще вопрос, как обратиться к конкретному классу? 

Код

window.parent.document.getElementsByClassName()?

или бред написал?

Автор: Grig 7.10.2009, 10:50
вот реализация этого метода:
Код

function getElementsByClass(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null )
                node = document;
        if ( tag == null )
               tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
    
        var pattern = new RegExp(\"(^|\\s)\"+searchClass+\"(\\s|$)\");
        for (i = 0, j = 0; i < elsLen; i++) {
               if ( pattern.test(els[i].className) ) {
                    classElements[j] = els[i];
                   j++;
              }
        }
        return classElements;
}

Возвращает массив элементов с указанным классом

Автор: insy 7.10.2009, 10:52
спасибо... разберу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)