使用CFLocation重定向到新选项卡 - CF9

时间:2013-01-15 21:17:15

标签: coldfusion coldfusion-9 cflocation

有没有办法通过使用CFLocation将用户重定向到新窗口?据我所知,你不能在CFLocation中使用target=_blank。还有其他办法吗?

这是我的代码:

    <cfif cgi.PATH_INFO eq "/procedure-page.cfm">
       <cflocation url="http://www.example.com/example/example.cfm?id=XXXXXX&contactid=#returnStruct.contactID#&doctorid=#officeLocation#" addtoken="no" >
    <cfelse>
       <cflocation url="http://www.example.com/example/example.cfm?id=#example#&contactid=#returnStruct.contactID#&doctorid=#officeLocation#" addtoken="no" >
    </cfif>

3 个答案:

答案 0 :(得分:13)

<cflocation>执行客户端重定向,但它是在服务器端启动的(它在标头中发送带有重定向的请求),因此它无法了解有关“标签”的任何信息事情。 CF对浏览器中发生的事情一无所知。

要在客户端站点上执行您想要执行的操作,您需要使用Javascript进行浏览器操作。

答案 1 :(得分:2)

这可能不是最干净的方式,但应该有效。

<cfoutput>
<cfif cgi.PATH_INFO eq "/procedure-page.cfm">
    <script type="text/javascript">
        window.open("http://www.example.com/example/example.cfm?id=XXXXXX&contactid=#returnStruct.contactID#&doctorid=#officeLocation#", '_blank');
    </script>
<cfelse>
    <script type="text/javascript">
        window.open("http://www.example.com/example/example.cfm?id=#example#&contactid=#returnStruct.contactID#&doctorid=#officeLocation#", '_blank');
    </script>
</cfif>
</cfoutput>

答案 2 :(得分:0)

我相信Adam是正确的,CFLocation不能要求浏览器在新窗口(或标签页)中打开。然而,您可能感兴趣的是CFWindow标记。 See the documentation here. 请注意,CFWindow也不会打开新的浏览器窗口,但会创建一个<div>来模拟弹出窗口。无论如何,它有几个选项,我以为你可能值得一看。也许它可以处理你需要的东西。