有没有办法通过使用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>
答案 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>
来模拟弹出窗口。无论如何,它有几个选项,我以为你可能值得一看。也许它可以处理你需要的东西。