Coldfusion:在javascript中获取窗口高度并将其传递给cfinclude

时间:2016-11-29 16:34:46

标签: javascript coldfusion

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

$(window).height()

我很清楚如何将客户端变量发送到服务器端的方式如下:

  1. 表格提交
  2. 的Ajax
  3. 但如果从上面申请任何人,我必须  传递所有页面默认变量和高度,但我不想发送其他变量,现在我的获取高度的逻辑介于Cfinclude之一。

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

    情况下

    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>
    

    我应该通过cfinclude将javascript变量传递给另一个coldfusion页面。是否有可能或者我误解了冷血功能?请分享你的想法。

1 个答案:

答案 0 :(得分:0)

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

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

Result = '$_',

2)在页面加载(onRequestStart)上查找cookie,如果我们还不知道宽度的话。如果出现一些javascript问题,也会设置默认值。

<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>

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

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

这里只是一个注释。可以增强步骤2,以便如果用户更改其窗口大小,则会话var更新。