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


Автор: bars80080 3.8.2010, 19:12
сама задача вкратце такая. гружу кое-чего аяксом и хочу затем вставить в поле fckeditor. так как поле делалось на сервере, то не знаю как можно им управлять js. остаётся только прямая вставка

в итоге система такая. у нас есть базовое окно, в котором у меня есть переменная с текстом. в этом базовом окне есть iframe (назовём - фрейм А), у него есть id="frameA", в этом фрейме есть ещё один фрейм Б, у него уже нет идентификатора, но он единственные во фрейме А.
вот в body фрейма Б надо вставить некий текст (хтмл).
уже прикреплена бибилиотека jquery, потому надо бы использовать её. как енто сделать? моих познаний пока не хватает

Код

$('#frameA').document.find('iframe').eq(0).document.find('body').html(param);


не работает

Автор: Любитель 4.8.2010, 01:41
Код

$('#frameA').contents().find('iframe').contents().find('body').html(param);


Но эт при условии, что все фреймы/ифремй с одного домена.

Автор: blah 4.8.2010, 01:58
А зачем городить огород, если надо просто вставить что-то в поле?
Код

FCKeditorAPI.GetInstance('FCKeditor1').InsertHtml(param);

Автор: bars80080 4.8.2010, 10:02
Цитата(blah @  4.8.2010,  01:58 Найти цитируемый пост)
А зачем городить огород, если надо просто вставить что-то в поле?

да я согласен, только не работает чего-то.

вот так выглядит окошка эдитора в базовом окне
Код

<input type="hidden" id="fieldright" name="fieldright" value="" style="display:none" />
<input type="hidden" id="fieldright___Config" value="" style="display:none" />
<iframe id="fieldright___Frame" src="http://.../fckeditor/editor/fckeditor.html?InstanceName=fieldright&amp;Toolbar=Default" width="100%" height="300" frameborder="0" scrolling="no"></iframe>

пытаюсь сделать:
Код

FCKeditorAPI.GetInstance('fieldright').InsertHtml(param);

не работает. а так конечно был бы оптимальный вариант


Цитата(Любитель @  4.8.2010,  01:41 Найти цитируемый пост)
$('#frameA').contents().find('iframe').contents().find('body').html(param);

отлично работает

Автор: blah 5.8.2010, 02:17
Ну так конечно не будет. А будет вот так.
Код

function FCKeditor_OnComplete(){
            FCKeditorAPI.GetInstance('fieldright').InsertHtml(param);
        }




Автор: bars80080 5.8.2010, 14:57
Цитата(blah @  5.8.2010,  02:17 Найти цитируемый пост)
function FCKeditor_OnComplete(){
            FCKeditorAPI.GetInstance('fieldright').InsertHtml(param);
        }

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


сейчас оно работает вот так:
Код

function curRestart() {
    $("#findcity").autocomplete(queryurl, { width: 260, selectFirst: false, delay: 500, password: querypassword });
    $("#findcity").result(function(event, data, formatted) {
        if(data) {
            $("#findcityR").val(data[1]);
            $(".findcontry").eq(0).find('td').eq(1).text(data[2]);
            if(data[3]) {
                // вставка пришлых данных в эдитор
                $('#fieldright___Frame').contents().find('iframe').contents().find('body').html(data[3]);
                $('#fieldright').val(data[3]);
            }
        }
    });
}

обработчик result срабатывает на приход данных

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