0

我有一个 iframe

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

当一个特定的事件被触发时,一个 POST 请求被发送到一个 servlet

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

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

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

聚苯乙烯

我也尝试过这样的事情

$.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();
    });
});

结果是一样的:没有:(

我有个疑问:

对发布消息的响应(由萤火虫查看)是一个 html 页面

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

我们确定 function(data) 中的 data 参数会得到这种响应,而不仅仅是类似 Json 的响应吗?

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

4

1 回答 1

0

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

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

于 2012-10-08T14:11:23.063 回答