2016-11-29 79 views
0

我的场景是使用javascript获取窗口高度,并且必须将值传递给coldfusion变量并将值设置为cfm页面中的vlc播放器。Coldfusion:在JavaScript中获取窗口高度并将其传递给cfinclude中的coldfusion变量

$(window).height() 

我为了如指掌的方式客户端变量如何被发送到服务器端,如:

  1. 形式提交
  2. 阿贾克斯

但是,如果从上述申请的人我必须 通过所有的页面默认变量与高度,但我不想发送其他变量,现在我的逻辑获得高度介于之间s。

我工作的页面是其中的一个,所以请提供一些想法。

情况下

A.cfm

var javaScritheight = 1200; 

B.cfm

<cfinclude template ="B.cfm?width="100%"&height=#javaScritheight#"> 
<cfparams name="width" default="240"> 
<cfparams name="height" default="360"> 



<video id="player" width="#width#" height="#height#">URL</video> 

我应该JavaScript变量通过cfinclude传递到另一个ColdFusion页。是否可能或者我误解coldfusion功能?请分享你的想法。

+3

您必须使用这两种方法之一将客户端值传递给CF.没有办法绕过它。对于任何人提供更具体的建议,您需要发布一个*小*自包含的repro案例。请参阅[如何创建最小,完整和可验证的示例](http://stackoverflow.com/help/mcve) – Leigh

+0

如果此页面是表单或定位标记的目标,那么也许您可以从以前的页。 –

+0

没有更多细节,第三个选项可能是将高度作为URL参数传递给.cfm页面。 – snackboy

回答

0

我已经这样做过,在cfgrid中设置一个宽度。这是这个例子。所以你只需要用高度替换宽度。

1)在某些页面上,在我的情况下,当用户登录到CMS时,设置一个cookie。

<script type="text/javascript"> 
function createCookie(name, value, days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
     var expires = "; expires=" + date.toGMTString(); 
    } else var expires = ""; 
    document.cookie = escape(name) + "=" + escape(value) + expires + "; path=/"; 
} 
$(document).ready(function(){ 
    createCookie("bodyWidth", $(document).width()-20, 14); 
}); 
</script> 

2)在页面加载(onRequestStart)上查找cookie,如果我们还不知道宽度。还设置一个默认情况下的一些javascript问题。

<!--- GRID WIDTHS ---> 
<cfif not isDefined("session.bodyWidth")> 
    <cfif isDefined("cookie.bodyWidth")> 
     <cfset session.bodyWidth = cookie.bodyWidth> 
    <cfelse> 
     <cfset session.bodyWidth = 1067> 
    </cfif> 
</cfif> 

3)稍后在CF中使用该会话变量。无需将其传递到包含路径名称中。

<cfoutput>#session.bodyWidth#</cfoutput> 

就在这里笔记。第2步可能会增强,如果用户更改其窗口大小,会话变量将被更新。

+0

谢谢。它按预期工作。 – KarthickTech

相关问题