0

我正在尝试打开新窗口并使用javascriptjquery-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>

这段代码有什么问题?

4

1 回答 1

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>
于 2013-01-09T00:36:02.190 回答