4

この質問は 1 年以上前に尋ねられ、回答されました。その後、ColdFusion 10 がリリースされましたが、ドキュメントは貧弱です。この質問は、厳密には ColdFusion 10 と CFSCRIPT に関するものです。

CFHTMLHEAD タグをまったく使用せずに、CFSCRIPT だけでこのコードを書くことに興味があります。

<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 に含まれる最初のものの 1 つになるようです。

4

3 に答える 3

6

ないと思います。しかし、GitHubのCFScript Community Componentsプロジェクトはご覧になりましたか? そこにcfhtmlheadの実装があります。

于 2012-10-21T15:41:12.560 に答える
5

その CFScript コミュニティ プロジェクトのものは機能しますが、それらがどのように実装されているかを見る<cfhtmlhead>と、少しうんざりします。

しかし、私は彼らがやっていることの精神に乗ってUDFを書きますが、<cfhtmlhead>実装方法を可能な限り厳密にエミュレートします。

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

(returntype / access / output /<cfargument>タグなどでドリーアップします)。

私が実行している古いバージョンの ColdFusion の空白を埋めるコーディング用の CFML.cfc を維持していますが、これは CFScript の準備が整っていませんが、それは単なる関数ライブラリであり、そのような UDF でいっぱいです。インスタンス化が必要な個々の CFC は実装しません。また、タグに相当する関数が呼び出される方法は、タグが呼び出される方法とは関係ありません。それは混乱していて、設計が不十分な IMO です。

走行距離は明らかに異なります。

于 2012-10-21T16:02:05.453 に答える
4

タグベースの機能をまとめたUDFの使用にフォールバックしたくない場合は<head>、出力バッファーを調べて、要求の最後にブロックに入れる必要のあるものを挿入できます。終了タグを見つけて、</head>その直前のバッファに[stuff]を挿入します。

出力バッファはにあると思いますgetPageContext().getOut()。そこにサルをする方法がいくつかあります。幸い、Elliott Sprehnはすでにこれについて脚の作業を行っており、その方法についてはBen Nadelのブログにコメントがあります:http://www.bennadel.com/blog/758-ColdFusion-GetPageContext-Massive-Exploration.htm (エリオットの3番目のコメントまで下にスクロールします)。

そうは言っても...「概念実証」のためにこれをお勧めしますが、それでもタグベースのUDFラッパーアプローチを使用します。

于 2012-10-21T17:03:04.487 に答える