Подтвердить что ты не робот

Сообщение Jquery, ответ в новом окне

У меня есть script, который on.DocumentReady отправляет данные на другую страницу. Эта страница отвечает некоторым HTML, заключенным в один тег div.

Моя цель - открыть этот ответ/данные post в новом окне.

Любые подсказки или подсказки?

Вот фрагмент, который я создал из совета доктора Миля.

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
 <script type="text/javascript">
$(document).ready(function() {
var packslip_id = 35592;
var po_no = 0018439;
var  box_no = 1;
    $.post("https://example.com/barcode/generate", { packing_slip: packslip_id, reference: po_no, total_boxes: box_no}, 
    function (data) {
        alert(data);
        var win=window.open('about:blank');
        with(win.document)
        {
            open();
            write(data);
            close();
        }
    });
 });

4b9b3361

Ответ 1

Используйте метод write() - метода всплывающего окна для размещения вашей разметки:

$.post(url, function (data) {
    var w = window.open('about:blank');
    w.document.open();
    w.document.write(data);
    w.document.close();
});

Ответ 2

Принятый ответ не работает с "use strict", поскольку оператор "with" выдает ошибку. Вместо этого:

$.post(url, function (data) {
    var w = window.open('about:blank', 'windowname');
    w.document.write(data);
    w.document.close();
});

Кроме того, убедитесь, что у 'windowname' нет пробелов, потому что это не сработает в IE:)

Ответ 3

Если вам не нужна обратная связь о запрошенных данных, а также не нужна какая-либо интерактивность между открывателем и всплывающим окном, вы можете опубликовать скрытую форму во всплывающем окне:

Пример:

<form method="post" target="popup" id="formID" style="display:none" action="https://example.com/barcode/generate" >
  <input type="hidden" name="packing_slip" value="35592" />
  <input type="hidden" name="reference" value="0018439" />
  <input type="hidden" name="total_boxes" value="1" />
</form>
<script type="text/javascript">
window.open('about:blank','popup','width=300,height=200')
document.getElementById('formID').submit();
</script>

В противном случае вы можете использовать jsonp. Но это работает только, если у вас есть доступ к другому серверу, потому что вам нужно изменить ответ.

Ответ 4

попробуйте

$.post('urpage.php',{},
function(data) {
window.open('page.php?data=data')
});

и на странице page.php показываются любые данные, которые должны были быть