2012-03-05 19 views
3

私は応答性の高いWebサイトを作っています。画面サイズを取得するためにjavascriptを使用し、画面サイズに応じてcoldfusionインクルードをレンダリングすることができます。このような何か:画面サイズ検出後のcoldfusion

if (screen.width <= 700) { 
    <cfinclude template="file1.cfm"> 
} else { 
    <cfinclude template="file.cfm"> 
} 

私も(アヤックスを経由してロードしようとしました)が、私はすでに含めるにCFMファイル内のファイルが含まれていたとき、私は動けなくなります。

+0

ドゥfile.cfm: http://www.alistapart.com/articles/responsive-web-design/

ここでは、この技術を使用するサイトのいくつかの素晴らしい例です。 file1.cfmには出力内容としてHTMLまたはJavaScriptが含まれていますか? –

答えて

1

あなたがしようとしていることはできません。 JavaScriptはクライアント側の言語ですが、ColdFusionはサーバー側の言語です。 JavaScriptのブロックでcfincludeを実行することはできません。そのコードはサーバーではなくブラウザで実行されるためです。

+0

コードは動作しませんが、私はcfmファイルを.ajax()経由で読み込もうとしましたが、インクルードしたいファイルにセカンダリインクルードファイルがある場合は動作しませんでした。別の方法でした。 – meijiOrO

+0

実際は可能です。私の答えを見て、あなたが同意しないかどうかを見てください。 –

+1

meijiOrO - 私が見るように、3つの実行可能なオプションがあります。 1.リダイレクトを含むEvikのソリューションを使用します。 2.メディアクエリを使用する - http://bit.ly/moVx2X 3. Application.cfcで何かを使用して、ユーザーエージェントを確認し、どのファイルを含めるかを決定する変数を設定します。私は知っている、これは画面のサイズを考慮に入れませんが、あなたの他の要件に基づいて、この方法は、他よりもあなたの要件の多くを満たすかもしれません。ここでそれを行う方法の詳細は、http://bit.ly/xNiNP3 –

5

JavaScriptはクライアント側です。 ColdFusionはサーバー側です。 2つをミックスしたい場合は、Ajaxが必要です。あなたは、より簡単にAjaxのためのjQueryを使用してのようなものを試してみてください:

あなたがそれらをリダイレクトする場合があります
// LOOK AT THE SCREEN WIDTH 
if (screen.width <= 700) { 
    // LOAD THE PAGE INTO THE CORRECT SIZED DIV 
    $("#YourDiv").load("ColFusionFile-01.cfm"); 
} else { 
    // LOAD THE PAGE INTO THE CORRECT SIZED DIV 
    $("#YourDiv").load("ColFusionFile-02.cfm"); 
} 

または、:

// LOOK AT THE SCREEN WIDTH 
if (screen.width <= 700) { 
    // SEND THE VISITOR TO THE CORRECT SIZED PAGE 
    window.location.href = "ColFusionFile-01.cfm" 
} else { 
    // SEND THE VISITOR TO THE CORRECT SIZED PAGE 
    window.location.href = "ColFusionFile-02.cfm" 
} 
+0

私はリダイレクトしたくありません。私はちょうどテンプレートに追加したいです。私も.load()を使ってみましたが、インクルードファイルにはmysqlクエリとその他のインクルードと変数があります。 – meijiOrO

+0

質問に「画面サイズを取得するためにjavascriptを使用し、次に画面サイズに応じてcoldfusionインクルードをレンダリングする」という具体的な方法を考えてみると、これは現在までに最も近い答えです。画面サイズを決定するには、ページが完成してレンダリングされ、JSがサイズを取得できるようにしなければなりません。次に、サイズに基づいて、適切なCFファイルに新しい要求を出しています。確かに、インクルードとしてではありませんが、正しいCFMファイルが呼び出されます。そのファイルが他のことを行う必要がある場合は、URL上でそれらのことを行うために必要な情報を渡してください。 –

4

あなたは異なった表示レンダリング用のCSSメディアクエリおよびスタイルシートを使用する必要がありますに基づいて、画面サイズ。これにより、両方のディスプレイに対して1つのCFページを持つことができます。 AJAXは必要ありません。メディアクエリーの

W3Cのドキュメント: "レスポンシブウェブデザイン" のhttp://www.w3.org/TR/css3-mediaqueries/

グレート記事:http://mediaqueri.es/

関連する問題