ColdFusion 转换为数字

Posted

技术标签:

【中文标题】ColdFusion 转换为数字【英文标题】:ColdFusion Convert To Number 【发布时间】:2015-02-28 21:47:40 【问题描述】:

通过简单的 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>

【问题讨论】:

您是否尝试在 javascript 代码或 CF 代码中使用屏幕分辨率? 基本上 - 尝试将屏幕调整为任何用户宽度等的谷歌地图大小......仅使用 * 2 作为示例......但想选择 *.9 或其他东西。只是不能操纵该死的变量。 您正在尝试解决服务器端的客户端问题,因此这将永远无法工作。你需要做这个客户端,可能使用 CSS 和 Javascript 的组合。 ColdFusion 无法将“”转换为数字。 【参考方案1】:

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

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

Ben Nadel 有一个great discussion 的问题。

【讨论】:

以上是关于ColdFusion 转换为数字的主要内容,如果未能解决你的问题,请参考以下文章

尝试将具有多个XOR组件的PHP hash_hmac转换为coldfusion

如何在 ColdFusion 中将查询列转换为列表

将 oracle sql 时间戳转换为 char Coldfusion

ColdFusion错误将数据类型十进制转换为十进制

PHP curl转换为coldfusion chfttp

Coldfusion查询到对象树