2016-11-29 48 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

相關問題