3

有没有办法使用 CFLocation 将用户重定向到新窗口?据我所知,您不能target=_blank在 CFLocation 中使用。还有另一种方法吗?

这是我的代码:

    <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>
4

3 回答 3

13

<cflocation>执行客户端重定向,但它是在服务器端启动的(它发送一个在标头中带有重定向的请求),因此它对作为浏览器的“选项卡”一无所知。CF 对浏览器中发生的事情一无所知。

要在客户端站点上做你想做的事情,你需要用 Javascript 做浏览器的东西。

于 2013-01-15T21:37:07.330 回答
3

这可能不是最干净的方法,但它应该可以工作。

<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>
于 2013-01-17T09:39:36.690 回答
0

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

于 2013-01-15T21:49:21.487 回答