0

我需要创建一个带有指向同一域下页面的 iframe 的 jQuery 对话框。我只想要该页面的特定 ID,而不是全部内容。我不能使用 .load() 因为源页面上有链接,如果有人点击它们,那么带有对话框的页面会刷新,我不能这样做。我希望有办法解决这个问题。这是我尝试过的:

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

1 回答 1

0

这可能不是您正在寻找的东西,如果不是,我很抱歉,但是当我处于同样的紧缩状态时,它对我有用。

这个想法是设置一个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 插件。

于 2011-10-26T17:39:40.397 回答