我有一些代码可以运行并向Web服务发出XML请求。然后,此Web服务返回一个URL。我需要将用户带到该网址。
目前网址是在iframe中打开的,这很好。但是,对站点进行了更改,现在需要在新选项卡中打开。我已经看到了一些如何在新标签页中打开网址的JavaScript示例,但所有这些示例都需要onclick
个事件。此外,我的JavaScript技能非常有限。是否有任何代码可以用来打开网络服务返回的网址。在新标签页中,无需使用点击事件?
目前这是我在iframe中的代码。我知道必须删除iframe并进行其他更改。我只是想让你了解如何调用web服务等。
<cftry>
<cfinclude template="webservices/travelit_request.cfm">
<cfset mynewURL = "#XML_URL#">
<cfset mynewURL &= "&adref=0">
<cflocation url="#mynewURL#" addtoken="false">
<cfcatch type="any"><h1>Your request was cancelled. Please retry.</h1></cfcatch>
</Cftry>
答案 0 :(得分:0)
<cflocation>
执行客户端重定向,但它是在服务器端启动的(它在标头中发送带有重定向的请求),因此它无法了解有关“标签”的任何信息事情。 CF对浏览器中发生的事情一无所知。
要在客户端站点上执行您想要执行的操作,您需要使用Javascript进行浏览器操作。
- 亚当卡梅隆
供您参考。 Redirect to a new tab using CFLocation - CF9
感谢Adam Cameron
答案 1 :(得分:0)
<cfoutput><cftry>
<cfinclude template="webservices/travelit_request.cfm">
<cfset mynewURL = "#XML_URL#">
<cfset mynewURL &= "&adref=0">
<cfoutput>
<script language="javascript">
window.open('#mynewURL#','_blank');
</script></cfoutput>
<A href="#mynewURL#" target="_blank">Page didn't open? Click Here.</A>
<cfcatch type="any"><h1>Your request was cancelled. Please retry.</h1></cfcatch>
</Cftry></cfoutput>
这会有效,它会让您离开您所在的页面,并打开一个新页面,如果它没有打开则会提供一个链接。
当然,这实际上应该在文档输出中的适当位置。