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



是否有办法通过使用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>

<cflocation>执行客户端重定向,但它是在服务器端发起的(它发送一个在头中有重定向的请求),所以它不能知道任何关于"选项卡"的事情,这是一个浏览器的事情。CF不知道浏览器中发生了什么。

要在客户端站点上做您想做的事情,您需要用Javascript完成浏览器的工作。

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

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

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

相关内容

  • 没有找到相关文章

最新更新