javascript - ColdFusion 转换为数字

标签 javascript coldfusion coldfusion-9

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

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

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

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

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

谢谢

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

最佳答案

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

让 CF 服务器知道 javascript 变量的唯一方法是通过(例如)Ajax 请求将 1366 传递回另一个页面。但您当前的 CF 模板并不知道这一点。

本·纳德尔有一个 great discussion的问题。

关于javascript - ColdFusion 转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28787320/

相关文章:

javascript - 如何使数据模式在 setTimeout 函数 JS 中工作

mysql - 无法创建与数据库的连接 (ColdFusion)

ColdFusion 9 为 cfqueryparam 设置十进制类型?

javascript - 如何使用 ajax 将数据从 Flask 获取到我的模板?

javascript - 如何使用 Rotativa 生成 PDF,包括来自 C3JS Asp.net 的图表

javascript - 将 SVG 多边形路径转换为纬度和经度坐标

session - ColdFusion session 变量

css - 带有倾斜标题的 PDF 表格

coldfusion - ColdFusion 9 标准版获取正在运行的请求列表

java - 服务器和 JRE 设置为 TLS 1.2,但 Coldfusion 9 仍尝试使用 TLS 1.0