jQuery iframe Выбор исходного элемента DOM - PullRequest
0 голосов
/ 26 октября 2011

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

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

1 Ответ

0 голосов
/ 26 октября 2011

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

Идея состоит в том, чтобы установить 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, но может работать для того, что вам нужно.

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

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

...