открыть dompdf в новой вкладке взятые данные с данной страницы

Я знаю, что есть еще как минимум два подобных вопроса, но они мне не помогают.

У меня есть текстовая область с tinymce, где пользователь пишет свой текст. Затем есть кнопка «PDF», которая должна создать pdf и открыть его в новой вкладке. Содержимое pdf - это содержимое в tinymce.

Когда пользователь нажимает кнопку, форма отправляется в действие index.php. Затем index.php собирает информацию из переменной $_POST и создает pdf.

Я не могу заставить его открываться в новой вкладке как обычная ссылка. Я пробовал по-разному.

1) Я могу открыть PDF в той же вкладке, но это не то, что мне нужно. Эта строка открывает мой pdf на той же вкладке:

$dompdf->stream('document.pdf',array('Attachment'=>0));

2) Я могу открыть его в новом окне, но тогда браузер предупреждает, что это всплывающее окно. Клиент этого не хочет. Также еще одна проблема заключается в том, что pdf хранится на сервере. Я этого не хочу (всплывающее предупреждение важнее). Вот мой код:

$output = $dompdf->output();
file_put_contents('document.pdf', $output); //save pdf on server

//opens generated pdf in new window, but this creates warning for popup
echo '<script type="text/javascript" language="javascript"> 
window.open("http://modeles-de-lettres.org/test/saved_pdf.pdf", "_blank"); 
</script>'; 

Я читал эти:

1) Открыть PDF в новой вкладке с помощью dompdf

Это предполагает: «Что касается открытия в новой вкладке. Это зависит от того, как вы создаете PDF-файл. Но проще всего предоставить ссылку с целевым атрибутом». Я думаю, это означает, что у меня есть

<a href="my.pdf" target="blank" 

or

<a href="my.php" target="blank" 

Но это не работает для меня, потому что я должен отправить свою форму, чтобы получить данные из pdf.

2) создать pdf на newtab в dompdf

Это то, что я реализовал раньше (я делал это без сеансов), но оно создает предупреждение о всплывающих окнах.


person renathy    schedule 03.07.2013    source источник


Ответы (2)


Вы можете просто сделать следующее:

 <button type="submit" formtarget="_blank">Submit to a new window</button>

Атрибут formtarget="_blank" откроет новую вкладку.

Надеюсь, это поможет вам!

person Mehta Chaitali    schedule 29.08.2017

Проблема в порядке, в котором вы делаете что-то. Вы должны открывать новое окно из пользовательского события, например, нажав кнопку. Если скрипт в событии загрузки страницы попытается открыть окно, браузер предположит, что это нежелательное всплывающее окно, поскольку пользователь ничего не сделал, кроме перехода на страницу.

Что может сработать для вас, так это добавить атрибут target="somewhere_new" к вашему тегу form. Таким образом, браузер откроет новую вкладку, так как нет фрейма/iframe с атрибутом name="somewhere_new", и вам не придется делать ничего особенного на стороне сервера, просто обработайте данные, как вы это делали до использования $dompdf->stream('document.pdf',array('Attachment'=>0)); в конце.

person Orestes    schedule 03.07.2013
comment
К вашему сведению, цель не обязательно должна быть именем. Вы также можете использовать ключевое слово _blank. - person BrianS; 05.07.2013
comment
@BrianS таким образом, браузер будет повторно использовать новую вкладку, если пользователь дважды отправит одну и ту же форму, что обычно требуется. Я должен был быть более ясным. Извиняюсь! - person Orestes; 06.07.2013
comment
Согласен, но хотел убедиться, что эта информация включена. Я делаю что-то подобное, но в моем случае я не хочу повторно использовать окно. - person BrianS; 06.07.2013