jQuery iframe Выбор исходного элемента DOM

Мне нужно создать диалоговое окно jQuery с iframe, который указывает на страницу в том же домене. Я просто хочу конкретный идентификатор этой страницы, а не все. Я не могу использовать.load(), потому что на исходной странице есть ссылки, и если кто-то нажимает на них, то страница с диалоговым окном обновляется, и я не могу этого получить. Я надеюсь, что есть способ обойти это. Вот что я попробовал:

$('<iframe src="'+frameurl+'" id="dialogframe" frameBorder="0" />').contents().find("#idthatiwant").dialog({attributes});

1 ответ

Это может быть не совсем то, что вы ищете, и если нет, то я прошу прощения, но это сработало для меня, когда я был в том же кризисе.

Идея состоит в том, чтобы установить href для div, обычного ajax, но переопределить щелчок и отправлять события для использования ajax. Таким образом, работа очень похожа на iframe, но на самом деле не является iframe.

У меня был div с именем externalContainer, а вот js:

$('#externalContainer form').live("submit", function(event) { 
    $(this).ajaxSubmit({target: '#externalContainer'});
    return false;
});

$('#externalContainer a').live('click', function(event){
    var jthis = $(this);
    if (jthis.attr('href') != "#"){
    event.preventDefault();
        $('#externalContainer').load(jthis.attr('href'));
    }
});

Я бы тогда просто позвонил $('#externalContainer').load("file.php"); загрузить новый HTML в.

Он не имеет всех "функций" обычного iframe, но может работать так, как вам нужно.

Следует отметить, что я нашел эту технику, я полагаю, на другом вопросе о stackru:).

Изменить: Следует отметить, что это также позволяет Ajax вещи из "iframe", поэтому я проверяю, что href не равно '#'. Также это зависит от jquery-плагина ajaxForm, если вы планируете использовать форму отправки.

Другие вопросы по тегам