2012-03-05 41 views
3

我正在制作一个响应式网站,我希望能够使用JavaScript来获取屏幕尺寸,然后根据屏幕尺寸显示一个coldfusion包括。事情是这样的:屏幕尺寸检测后的Coldfusion

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

我也通过阿贾克斯试图加载(),但我卡住时,我有包括CFM文件中的文件中已经想包括。

+0

做file.cfm和file1.cfm包含HTML或JavaScript作为他们的输出内容? – 2012-03-06 05:14:14

回答

1

你试图做的事是不可能的。 JavaScript是客户端语言,ColdFusion是服务器端语言。您不能在一个JavaScript块中执行cfinclude,因为该代码将在浏览器中执行,而不是在服务器上执行。

+0

我知道代码不起作用,但我试过通过.ajax()加载cfm文件,但是如果在我想包含的文件中存在第二个包含文件,那也不起作用,所以我想知道是否存在是另一种方式。 – meijiOrO 2012-03-05 19:24:22

+0

其实,这是可能的。看看我的答案,看看你是否不同意。 – 2012-03-05 20:06:13

+1

meijiOrO - 正如我所见,你有三个可行的选择。 1.使用涉及重定向的Evik解决方案。 2.使用媒体查询 - http://bit.ly/moVx2X 3.使用Application.cfc中的某些内容检查用户代理并设置变量以确定包含哪个文件。我知道,这不会考虑屏幕尺寸,但根据您的其他要求,此方法可能会比其他要求更符合您的要求。这里是关于如何做到这一点的更多信息,http://bit.ly/xNiNP3 – 2012-03-06 04:23:29

5

JavaScript是客户端。 ColdFusion是服务器端。如果你想混合两者,你需要Ajax。你应该尝试更多的东西一样使用jQuery,方便的Ajax:

// 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 2012-03-05 20:38:49

+0

考虑到问题的具体表达方式,“使用javascript获取屏幕大小,然后渲染包含屏幕大小的coldfusion”,这是迄今为止最接近的答案。为了确定屏幕大小,页面必须完成并渲染,以便JS可以触发以获取大小。然后,根据大小,它会向相应的CF文件发出新的请求。当然,它不是一个包含,但正确的CFM文件将被调用。如果该文件需要执行其他操作,那么将其传递给URL以完成这些操作所需的信息。 – 2012-03-06 03:01:58