jquery.post结果在iframe中

时间:2012-10-08 12:41:58

标签: jquery post iframe

我有一个iframe

<iframe class="browser" scrolling="no" name="navigation"></iframe>

当触发特定事件时,POST请求将发送到servlet

$.post("LoggerServlet", { sharedSessionId: $('#sharedSessionId').val(), level: $('#level').val(), goTo: this.href} );

是否可以将POST响应定位到iframe?

P.S。我认为可以使用一种解决方法,比如创建一个隐藏的表单,动态填充它并使用submit()方法,但如果可能的话,我更喜欢“jQuery-native”解决方案。

P.P.S。

我也试过这样的事情

$.post("LoggerServlet", { 
sharedSessionId: $('#sharedSessionId').val(), level: $('#level').val(), goTo: this.href
}).success(function(data) { alert(data); });

$.post("LoggerServlet", { 
sharedSessionId: $('#sharedSessionId').val(), level: $('#level').val(), goTo: this.href}, 
function(data) { alert(data); });

$.post("LoggerServlet", { 
sharedSessionId: $('#sharedSessionId').val(), level: $('#level').val(), goTo: this.href
}).success(function(data) {
    var iframe = $(".browser")[0].contentWindow.document;
    iframe.open();
    iframe.empty(); //just to see if the callback is called
    iframe.close();
    });
});

,结果是一样的:none :(

我有疑问:

对帖子消息的回复(由firebug查看)是一个html页面

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>[...]</body></html>

我们确定函数(数据)中的数据参数是否得到这种响应,而不仅仅是类似Json的响应?

有什么建议吗?谢谢大家。

1 个答案:

答案 0 :(得分:0)

您可以使用.load在传递变量时打开iFrame中的目标文件。

注意:在iFrame上使用.load会导致函数触发两次;通过从iFrame本身调用函数来修复。 - 见jQuery iframe load() event?