我可以在 CFDOCUMENT 页面上显示弹出窗口吗?

Can I display a popup over a CFDOCUMENT page?

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

网页上有一个 "Download" href link,我希望在用户单击此 link 时打开另一个浏览器选项卡。在新选项卡中,我在 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。

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

我想 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 的 formatting/sizing 才能正确显示,但希望这能让您显示 PDF。