我知道至少还有两个类似的问题,但它们对我没有帮助。
我有textarea用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)Open PDF in a new tab using dompdf
这表明:“只要在新选项卡中打开。这取决于您如何生成PDF。但这是提供带有目标属性的链接的最简单方式。”我认为这意味着我有
<a href="my.pdf" target="blank"
或
<a href="my.php" target="blank"
但是这对我不起作用,因为我应该发布我的表单以从pdf获取数据。
2)generate the pdf on newtab in dompdf
这是我以前实现过的(我没有会话),但它会弹出有关弹出窗口的警告。
答案 0 :(得分:1)
问题在于你做事的顺序。您应该从用户事件中打开新窗口,例如单击按钮。如果页面加载事件上的脚本试图打开一个窗口,浏览器会认为它是一个不需要的弹出窗口,因为除了导航到该页面之外,用户还没有做任何事情。
对您有用的是在target="somewhere_new"
标记中添加form
属性。这样,浏览器就会打开一个新选项卡,因为没有带name="somewhere_new"
属性的frame / iframe,你不需要在服务器端做任何特殊操作,只需按照之前的方式处理数据{ {1}}最后
答案 1 :(得分:1)
您可以执行以下操作:
<button type="submit" formtarget="_blank">Submit to a new window</button>
formtarget =“_ blank”属性将打开新标签。
希望它会对你有所帮助!