Это может быть не совсем то, что вы ищете, и если нет, то я прошу прощения, но это сработало для меня, когда я был в том же кризисе.
Идея состоит в том, чтобы установить 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, если вы планируете использовать отправку формы.