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, если вы планируете использовать форму отправки.