ColdFusion转换为数字

时间:2015-02-28 21:47:40

标签: javascript coldfusion coldfusion-9

通过简单的JavaScript文档写入来拉动屏幕分辨率。使用ColdFusion 9.0。

我可以获得正确的数字等。但他们不是"数字"必须以文字形式出现。因为我不能用作数字变量......

代码让我: 可用的浏览器宽度:1366 可用的浏览器高度:728

错误: 值document.write(screen.availWidth);无法转换为数字。

如何简单地将这些转换为我可以使用的数字的任何想法......没有放入表格并通过表格重新提交???

Thx

<cfset screenwidth = "<script>document.write(screen.width);</script>" > 
<cfset screenheight = "<script>document.write(screen.height);</script>" > 
<cfset availWidth = "<script>document.write(screen.availWidth);</script>" > 
<cfset availHeight = "<script>document.write(screen.availHeight);</script>"> 

<cfoutput> 
    <div style="padding:15px;"> 
    Available browser width: #availWidth#<br /> 
    Available browser height: #availHeight#<br /> 
    </div> 
</cfoutput> 

 <cfset nw = availWidth * 2>

  <cfset nh = availheight * 2>

  <cfoutput>#nw# and #nh#</cfoutput>

1 个答案:

答案 0 :(得分:4)

我曾经遇到过这个问题。就目前而言,就CF而言,您的 availWidth 变量包含一个恰好是javascript片段的字符串变量。 CF没有对此进行评估(因为它不能)并将文本按原样传递给Web服务器(当您调用#availWidth#时)并因此传递给浏览器。浏览器看到文本是javascript,并将其评估为1366;但就CF而言,它只是文本 - 这就是为什么你试图乘以2会出错。

使CF服务器知道javascript变量的唯一方法是通过(例如)Ajax请求将1366传递回另一个页面。但是你现在的CF模板并没有意识到它。

Ben Nadel有great discussion的问题。