尝试了大约一个小时没有成功。。。(coldfusion8
)一个伪问题,但我被卡住了:
我的URL(Jquery Mobile,没有推送状态,这就是为什么它看起来是这样的):
http://www.page.de/test/mem/search.cfm#/test/mem/search.cfm?id=9900000003869
如果我输出:
<cfdump output="e:websitedump.txt" label="catch" var="#url#">
我得到这个:
catch - struct
ID: 9900000003869
但我该如何访问它……我一直在尝试,什么都不起作用:
<cfdump output="e:websitedump.txt" label="catch" var="#id#">
<cfdump output="e:websitedump.txt" label="catch" var="#ID#">
<cfdump output="e:websitedump.txt" label="catch" var="#url.id#">
<cfdump output="e:websitedump.txt" label="catch" var="#url.ID#">
<cfdump output="e:websitedump.txt" label="catch" var="#StructGetValue(url,"id")d#">
...
谢谢你的帮助!
好的。。。这项工作:
URL = http://www.page.de/test/mem/search.cfm#/test/mem/search.cfm?id=9900000003869
<cfset objRequest = GetPageContext().GetRequest() />
<cfset strUrl = right( objRequest.GetRequestUrl().Append( "?" & objRequest.GetQueryString() ).ToString(), 13)>
信用
如果有人发现更容易,请发帖。我会核对答案。
您正试图从txt文件中读取此内容?
你能不能简单地使用:
<cfdump label="catch" var="#url.id#" />
这样行吗?
编辑:
你能试着先捕获和格式化你需要的东西,然后把它写到文件中吗?
例如,尝试使用:
<cfsavecontent variable="myFileContents">
<cfoutput>#url.id#</cfoutput>
</cfsavecontent>
<cffile action="Write" file="e:websitedump.txt" output="#myFileContents#" />
我还没有测试过这个代码,但试试看!
可能也想使用isDefined()
检查URL变量
祝你好运。
在Peter和Duncan的评论的提示下,我对片段标识符(这对我来说是一个新术语:()进行了一些研究,从wiki中发现:http://en.wikipedia.org/wiki/Fragment_identifier
片段标识符的功能与URI:也就是说,它的处理是独占客户端,没有来自服务器的参与——当然,服务器通常会提供帮助以确定MIME类型,并且MIME类型确定碎片处理。当代理(如Web浏览器)从Web服务器请求资源,代理将URI发送到服务器,但不发送片段。相反,代理会等待服务器发送资源,然后代理处理资源。
现在,作为您的客户,由于某种原因,您可以访问片段和url变量,使用它是由我的原始帖子完成的。
<cfoutput>
通常是将变量或其他求值输出到屏幕的方式。
<cfset myName = "Travis">
<cfoutput>Hello, my name is #myName#</cfoutput>
您还可以在不输出任何内容的语句中使用该变量来访问该变量。
<cfset myFullName = myName & " Mak">
您也可以在查询中使用变量
<cfquery name = "qSomeQuery" datasource = "#application.dsn#">
select * from table where id = #url.id#
</cfquery>
但是,在查询中使用它的方法不好,应该始终使用cfquery param。
<cfquery name = "qSomeQuery" datasource = "#application.dsn#">
select * from table where id = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.id#">
</cfquery>
您在测试变量时遇到的问题是由于语法不正确造成的。
<cfif isDefined("url.id")>
与<cfif isDefined(url.id)>
更准确的测试是<cfif structKeyExists(url, "id")>
出于某种原因,我的CF服务器会截断#之后url中的所有内容,但你的服务器似乎没有这个问题。正如您的cfdump所说,您可以看到您的url变量,因此"访问"url变量就像使用它一样简单:#url.id#
或测试它<cfif isDefined("url.id")>