首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用cfpdf作为源在cfcontent中添加javascript导入

如何使用cfpdf作为源在cfcontent中添加javascript导入
EN

Stack Overflow用户
提问于 2019-07-12 18:35:00
回答 1查看 179关注 0票数 0

我曾经通过url打开我的pdf,让浏览器处理pdf呈现,但是自从上次对android和ios的更新之后,这种方式就不再适用于移动设备了。

我决定使用coldfusion本身来处理这个问题,使用cfpdf函数并使用cfcontent将二进制文件外部化,这很好,但是页面上有一个google分析代码,cfcontent< code >E29呈现整个页面,因此我失去了分析代码的引用。

这是一个解决方案,我暂时将此内容称为cfpdf通过iframe生成的内容,但当 base64 of 通过base64使用iframe时并没有加载,因为它已经作为普通url使用,我回到了在移动设备中不工作的最初问题。

基本上我需要将分析标记插入cfcontent生成的html中,但我不能手动操作源代码,因为内容来自cfpdf

代码语言:javascript
复制
<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" />
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-12 19:02:14

您的cfcontent输出二进制数据,并告诉浏览器将其视为application/pdf (通过Content-Type HTTP报头)。您不能向它添加HTML或JavaScript,因为它会破坏PDF文档。我在这里看到两种选择:

1使用中间页

open_pdf.cfm

代码语言:javascript
复制
<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>

render_pdf.cfm

代码语言:javascript
复制
<cfpdf action="read" name="RawFile" source="#RawUrl#" />
<cfcontent variable="#toBinary(RawFile)#" type="application/pdf" />

你的访问者点击open_pdf.cfm,阅读一条关于PDF文档是如何为他们“准备”的信息,同时被Google跟踪。4秒后(调整到任何您认为足以跟踪的内容),它们将被重定向到实际的PDF文档。

2将谷歌分析嵌入你的PDF中

你可以在PDF文档中运行JavaScript代码。请注意,由于PDF查看器中的安全限制,这可能有点棘手。即使如此,我强烈建议你不要使用这个选项,因为它可能会引起比正确的GA印象更多的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57012424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档