是否有CCRCRIPT的CFHTMLHEAD等价物?

时间:2012-10-21 15:24:04

标签: coldfusion coldfusion-10

这个问题在一年多前被提出并得到了答复。从那以后,ColdFusion 10发布了,但文档很差。这个问题严格关于ColdFusion 10和CFSCRIPT。

我有兴趣在CFSCRIPT中编写此代码,绝对没有使用CFHTMLHEAD标记。

<cffunction name="HTMLHead" output="false" returnType="void">
    <cfargument name="text" type="string" required="yes">
    <cfhtmlhead text="#text#">
</cffunction>

以下是我认为应该工作

的方式
// CREATE PAGE TITLE 
function createPageTitle(Content) {
    LOCAL.Content = ARGUMENTS.Content;
    LOCAL.Content = "<title>#LOCAL.Content#</title>";
    LOCAL.Content = htmlhead(LOCAL.Content);
}

我找不到任何关于如何完成此操作的文档,但它似乎是CFSCRIPT中首先包含的内容之一。

3 个答案:

答案 0 :(得分:6)

我认为没有。你看过GitHub上的CFScript Community Components项目吗?那里有cfhtmlhead的实现。

答案 1 :(得分:5)

CFScript社区项目的内容将工作,但看看他们如何实施<cfhtmlhead>我有点畏缩。

但是我会按照他们正在做的事情的精神去编写一个UDF,但我只是尽可能地模仿<cfhtmlhead>的实现方式:

<cffunction name="cfHtmlHead">
    <cfhtmlhead attributecollection="arguments">
</cffunction>

(我还会使用returntype / access / output / a <cfargument>标签等来实现它。)

我为我的编码维护了一个CFML.cfc,它填补了我运行的旧版本ColdFusion的空白,它没有那么多的CFScript就绪,但它只是一个函数库,充满了类似的UDF。我没有实现需要实例化的单个CFC,并且调用标记的函数等效方式与调用标记的方式无关。这让IMO感到困惑和设计不佳。

里程显然有所不同。

答案 2 :(得分:4)

如果不想回到使用包含基于标记的功能的UDF,那么可以在请求结束时插入需要进入<head>块的内容,查看输出缓冲区,查找结束</head>标记,然后将[stuff]插入到缓冲区之前。

认为输出缓冲区存在于getPageContext().getOut()中。有一些方法可以用它来实现它。幸运的是,Elliott Sprehn已经完成了这方面的工作,并且Ben Nadel的博客评论了如何做到这一点:http://www.bennadel.com/blog/758-ColdFusion-GetPageContext-Massive-Exploration.htm(向下滚动到Elliott's third comment)。

那就是说......我推荐这是为了“概念验证”,我仍然会使用基于标签的UDF包装方法。