我正在尝试解决某个[Coldfusion生成的PAGE] [1]的问题。请注意,我对ColdFusion及其工作原理知之甚少。因此,如果您需要更多信息,请告诉我,我会尝试跟踪它。
在"如何申请"页面的一部分意味着包含某个网站的URL。但是,该页面仅显示可点击超链接格式的URL的第一部分。 /
之后的所有内容都显示为纯文本。你能建议一个解决方案吗?以下是网址在网页上的显示方式:
请注意,这些部分是从数据库中提取的,并在网页中动态显示。此图显示了文本在数据库中的显示方式:
这是job.cfm的内容:
<cfset Application.controller.job()>
这是Application.cfm的内容:
<cfapplication name="UK_AC_UEL_JOBSEARCH"
sessionmanagement="true"
setclientcookies="false"
setdomaincookies="false">
<cfscript>
function onRequestStart()
{
var formKeys = StructKeyList(Form);
var urlKeys = StructKeyList(URL);
var key = "";
var value = "";
var i = 0;
// ....
if (NOT StructKeyExists(Application, "controller"))
{
Application.controller = CreateObject("component", "uk.ac.uel.jobsearch.controller.Controller");
}
// ....
}
onRequestStart();
更新1
我仍然在寻找包含实际呈现相关页面的文件的过程。我能够找到Controller.cfc,但它似乎并不直接负责呈现页面。进一步搜索后,这里是我认为呈现页面部分的代码:
<div class="display-item last">
<div id="how-to-apply">
<h2>How to apply</h2>
<p>#formatWithLinks(Arguments.data.ApplicationProcedure)#</p>
<dl>
<dt>Closing date</dt>
<cfif Arguments.data.HasClosingDate>
<dd>#DateFormat(Arguments.data.ClosingDate, "D MMMM YYYY")#</dd>
<cfelse>
<dd>None: ongoing recruitment</dd>
</cfif>
</dl>
</div>
</div>
我不知道应该改变什么来解决这个问题。任何帮助将不胜感激!
答案 0 :(得分:1)
嗨大家刚刚到底,函数formatWithLinks是解决这个问题的关键,它在view.cfc文件中被发现为@Leigh建议(谢谢),这里是函数的完整代码:
<cffunction name="formatWithLinks" output="false" returntype="string">
<cfargument name="input" />
<cfscript>
var output = Arguments.input;
/*var httpREWithProtocol = "(?x)
(
((https|http):\/\/) ## protocol
(
[a-zA-Z]{1}
([\w-]+\.)+
([a-zA-Z]{2,}) ## top level domain
) ## domain name
(:[\d]{1,5})? ## port number
((/?\w+/)+|/?)
(\w+\.[\w]{3,4})?
((\?\w+=\w+)?
(&\w+=\w+)*)?
)";*/
var httpREWithoutProtocol = "(?x)
(\s) ## Space requirement here means this won't match beginning of string
(
(
[a-zA-Z]{1}
([\w-]+\.)+
([a-zA-Z]{2,}) ## top level domain
) ## domain name
(:[\d]{1,5})? ## port number
((/?\w+/)+|/?)
(\w+\.[\w]{3,4})?
((\?\w+=\w+)?
(&\w+=\w+)*)?
)";
var httpREWithoutProtocolBeginningOfString = "(?x)
^ ## Match string here; I don't like doing it this way, but at least it works
(
(
[a-zA-Z]{1}
([\w-]+\.)+
([a-zA-Z]{2,}) ## top level domain
) ## domain name
(:[\d]{1,5})? ## port number
((/?\w+/)+|/?)
(\w+\.[\w]{3,4})?
((\?\w+=\w+)?
(&\w+=\w+)*)?
)";
var emailRE = "(?x)
(
[\S]+@ ## user
[a-zA-Z]{1}
([\w-]+\.)+
([a-zA-Z]{2,})
)";
output = REReplace(output, "<[^>]*>", "", "all");
output = XMLFormat(output);
//output = REReplace(output, httpREWithProtocol, "<a href=""\1"">\1</a>", "all");
output = REReplaceNoCase(output,"(\bhttp://[a-z0-9\.\-_:~@##%&/?+=]+)", "<a href=""\1"">\1</a>", "all");
output = REReplace(output, httpREWithoutProtocol, "\1<a href=""http://\2"">\2</a>", "all");
output = REReplace(output, httpREWithoutProtocolBeginningOfString, "<a href=""http://\1"">\1</a>", "all");
output = REReplace(output, emailRE, "<a href=""mailto:\1"">\1</a>", "all");
return output;
</cfscript>
</cffunction>
谢谢大家试图提供帮助。我非常感谢你的努力
答案 1 :(得分:0)
application.cfm不是您的问题所在。看看实际呈现页面的cfm。你可能会发现这样的东西......
<a href="http://example.com/">http://example.com/</a>#section#
将其更改为......
<a href="http://example.com/#section#">http://example.com/#section#</a>
你应该是金色的。请注意,哈希标记之间的所有内容都是动态ColdFusion变量。您的变量名称可能会非常不同。