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")、nullです。

こちらが/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 に答える