使用锚标签提交表单以在新窗口中打开PDF

3
我有一个JQM网站,提交表单后会生成PDF文件。一切正常,但我在iPhone主屏幕上启动时无法在新窗口(打开safari...)中打开PDF。
看起来我不是唯一遇到这个问题的人,但我还没有找到有效的解决方案。如果我使用锚点链接到静态PDF,我可以在Safari中打开新窗口而没有问题。我的结论是,如果我使用锚点标记提交表单,则一切都将正常运行..! 但是,当我尝试使用以下代码时,结果与使用常规提交按钮提交表单时完全相同。 请问有人能帮我提供另一种解决方案吗?或者也许调整此代码使其正常工作? 这是我的表格:
 <form name="pdf" action="pdf_report1.php" data-ajax="false" target="_blank" id="pdf_report" method="POST">

<input type="hidden" name="customer_id" value="<?php echo $customer_id; ?>" >
<input type="hidden" name="date_from" value="<?php echo $date_from; ?>" >
<input type="hidden" name="date_to" value="<?php echo $date_to; ?>" >
<input type="hidden" name="user_id" value="<?php echo $user_id; ?>" >
<input type="hidden" name="maskin_id" value="<?php echo $maskin_id; ?>" >
<input type="hidden" name="akeri_id" value="<?php echo $akeri_id; ?>" >
<input type="hidden" name="littra_id" value="<?php echo $littra_id; ?>" >
<a href="javascript: document.getElementById('pdf_report').submit();" data-role="button">Create PDF</a>

</form>
3个回答

0

请确保将这些行放入pdf_report1.php文件中

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');

好的,我尝试过了,但似乎没有任何效果。pdf_report1.php实际上是一个FPDF页面,输出PDF文件,这个功能完全正常。 - user2533103

0

我对在iPhone上这样做并不了解,但是添加target='_blank'应该会强制它在一个新的标签页或页面中打开,具体取决于浏览器的默认设置。例如:

<a href="javascript: document.getElementById('pdf_report').submit();" data-role="button" target="_blank">Create PDF</a>

谢谢Brandon的回答。然而,我已经尝试过这个方法了。我还尝试了data-ajax="false",根据JQM的说法,两种方法都可以。但是只有当我使用普通的锚点标签链接到PDF或其他类型的页面时才有效... - user2533103

0

在研究了这个问题并无法通过表单解决它后,我采取了不同的方式。 我没有使用表单,而是直接在URL中添加了我需要的所有值,并在目标页面上使用get进行提取。也许这不是最优雅的方法,但对我来说很有效。 现在,当从iPhone主屏幕启动Web应用程序时,PDF会在Safari中打开一个新窗口,就像我想要的那样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接