【问题标题】:Can I display a popup over a CFDOCUMENT page?我可以在 CFDOCUMENT 页面上显示弹出窗口吗?
【发布时间】:2019-05-24 08:58:04
【问题描述】:

这是我想在 Coldfusion 中做的事情:

在网页上有一个“下载”href 链接,我希望在用户单击此链接时打开另一个浏览器选项卡。在新选项卡中,我通过 Coldfusion 中的 CFDOCUMENT 创建 PDF。这本身就有效。

但是,由于 PDF 在加载到选项卡之前有延迟,我想向用户显示一个弹出窗口,说明 PDF 可能需要一些时间才能加载。

所以我尝试做的是这个序列:

User clicks "Download" -> 
On the same page, I trapped the link with jquery and displayed a popup 
window alerting the user there may be a delay ->
User clicks OK on the popup ->
Using javascript window.open, redirected to a new browser window for the PDF.

这是不成功的,因为在 javascript 中使用 window.open 不受浏览器信任,并且由于弹出窗口阻止程序,新选项卡不会显示。

然后我想我会在加载 PDF 之前在新的浏览器选项卡中创建一个弹出窗口,但发现我不能在带有 CFDOCUMENT 的页面上使用 javascript。

如果可以做任何事情,关于如何最好地完成此任务的任何想法?

【问题讨论】:

  • 使用 cfflush 显示 html,而不是弹出窗口。
  • 你能说得更具体一点吗?我尝试在一个小的 pdf 文件中运行测试:
    test
    这是一个测试 pdf。 'Test' 在 pdf 成功之前出现,但是当 PDF 加载时,它不再是 pdf。很多编码的东西......

标签: javascript coldfusion cfdocument


【解决方案1】:

我认为iframe 可能是你的朋友。它允许您在 pdf 页面中显示另一个文档。

使用您在评论中的示例,我创建了两个文件:一个用于显示提示消息,一个用于显示 PDF。


cfprompt.cfm

<body>
<div> this is a test </div>
</body>
<cfflush> 
<iframe src="pdf.cfm" >
</iframe>

pdf.cfm

<cfdocument format="pdf">
    <h1>Hello ColdFusion</h1>
    <p>This is <strong>PDF</strong> example document.</p>
    <p>Genereated at: <cfoutput>#TimeFormat(Now())# on #DateFormat(Now())#</cfoutput></p>
</cfdocument>

您仍然需要调整 iframe 的格式/大小以使其正确显示,但希望这可以让您显示 PDF。

【讨论】:

  • 谢谢!我试过了,它奏效了。我唯一需要添加的是 pdf.cfm 文件中的 CFHEADER 和 CFCONTENT 以将 iframe 视为 pdf 文档,因此如果用户尝试保存,它将保存为 pdf。
  • 没问题,很高兴听到这有帮助! (如果这篇文章回答了你的问题,你应该通过点击答案投票的复选标记来接受它作为正确答案)
猜你喜欢
  • 1970-01-01
  • 2018-08-22
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多