这可能不是您正在寻找的东西,如果不是,我很抱歉,但是当我处于同样的紧缩状态时,它对我有用。
这个想法是设置一个div的href,普通的ajax,但是要覆盖点击和提交事件来使用ajax。因此工作起来很像 iframe,但实际上并不是 iframe。
我有一个名为 externalContainer 的 div,这是 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上的另一个问题上发现了我相信的这种技术:)。
编辑:应该注意的是,这也允许来自“iframe”中的 ajax 内容,这就是我验证 href 不等于“#”的原因。如果您打算使用表单提交内容,这也取决于 ajaxForm jquery 插件。