Coldfusion 如何使用cfpdf作为源在cfcontent中添加javascript导入
我曾经通过url打开我的pdf,让浏览器处理pdf渲染,但自从上次android和ios更新以来,这种方式不再适用于移动设备 我决定使用coldfusion本身来处理这个问题,使用cfpdf函数并使用cfcontent外部化二进制文件,这非常有效,但是我在页面上有一个google analytics代码,并且cfcontent呈现整个页面,所以我失去了分析代码的引用 我曾通过iframe临时调用由我的cfpdf生成的内容的解决方案,但当通过base64使用iframe时,某些pdf的base64没有加载,已经用作正常url,我回到了最初的问题,即无法在移动设备中工作 基本上,我需要将我的分析标签插入到生成的cfcontent html中,但我无法手动操作源代码,因为内容来自cfpdfColdfusion 如何使用cfpdf作为源在cfcontent中添加javascript导入,coldfusion,base64,coldfusion-11,cfpdf,Coldfusion,Base64,Coldfusion 11,Cfpdf,我曾经通过url打开我的pdf,让浏览器处理pdf渲染,但自从上次android和ios更新以来,这种方式不再适用于移动设备 我决定使用coldfusion本身来处理这个问题,使用cfpdf函数并使用cfcontent外部化二进制文件,这非常有效,但是我在页面上有一个google analytics代码,并且cfcontent呈现整个页面,所以我失去了分析代码的引用 我曾通过iframe临时调用由我的cfpdf生成的内容的解决方案,但当通过base64使用iframe时,某些pdf的base64
<cfhtmlhead text='
<script async src="https://www.googletagmanager.com/gtag/js?id=#Key#"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "#Key#");
</script>'>
<cfpdf action="read" name="RawFile" source="#RawUrl#" />
<cfcontent variable="#toBinary(RawFile)#" type="application/pdf" />
您的
cfcontent
输出二进制数据,并告诉浏览器将其视为application/pdf
(通过内容类型
HTTP标题)。不能向其中添加HTML或JavaScript,因为这会破坏PDF文档。我在这里看到两种选择:
1使用中间页
open\u pdf.cfm
您的访问者点击打开的_pdf.cfm
,阅读一条消息,说明在谷歌分析跟踪时,pdf文档是如何为他们“准备”的。4秒钟后(根据您认为足以跟踪的内容进行调整),它们将被重定向到实际的PDF文档
2将谷歌分析嵌入到您的PDF中
你可以。请注意,由于PDF查看器中的安全限制,这可能有点棘手。即使如此,我还是强烈建议您不要使用此选项,因为它可能会导致比正确的GA印象更多的问题。我尝试了第一种方法,但使用了iframe,虽然有点效果,但还不够充分,我将尝试重定向,但我想客户可能不喜欢,但让我试试
<cfoutput>
<h1>Please wait while we prepare the PDF document for you...</h1>
<script async src="https://www.googletagmanager.com/gtag/js?id=#Key#"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag("js", new Date());
gtag("config", "#Key#");
var secondsToWait = 4;
setTimeout(function() { window.location.href = 'render_pdf.cfm'; }, secondsToWait * 1000);
</script>
</cfoutput>
<cfpdf action="read" name="RawFile" source="#RawUrl#" />
<cfcontent variable="#toBinary(RawFile)#" type="application/pdf" />