是否有办法通过使用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>
来模拟一个弹出窗口。无论如何,它有几个选项,我认为它可能值得你看一看。也许它能满足你的需要。