window.open并发送表单数据不起作用

时间:2013-01-09 00:30:13

标签: javascript jquery

我正在尝试打开新窗口并发送表单数据 使用 javascript jquery-1.8.3 。但是,这并不令人担忧。

这是源代码。

<a href="#" onclick="printPage()">Print this</a>

<script type="text/javascript" src="/common/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
    function printPage(){

        var form = $("<form method='post' action='/common/print.jsp' target='printWindow'></form>");
        var input = $("<input type='hidden' name='view'/>");
        input.val($("#ctn").html());
        form.append(input);
        var printWindow = window.open(form.attr("action"), "printWindow", "width=700px,height=800px");
        form.submit();
    }
</script>
窗口打开了。但request.getParameter("name")为空。

以下是/common/print.jsp页面

<%@ page contentType="text/html; charset=utf-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<div id="ctn">
<%
    out.print(request.getParameter("view"));
%>
</div>

此代码中的问题是什么?

1 个答案:

答案 0 :(得分:1)

你是假装ajax电话; - )

最好你做这样的事情:

<a href="#" onclick="printPage()">Print this</a>

<script type="text/javascript" src="/common/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript">

function printPage(){

    $.post('/common/print.jsp', {view:$("#ctn").html()}).success(function(response){
        var oWindow = window.open('', "printWindow", "width=700px,height=800px");
        oWindow.document.write(response);
    });
}
</script>