gpt4 book ai didi

coldfusion - CFCLIENT:文档示例不起作用;什么都做不了?

转载 作者:行者123 更新时间:2023-12-03 16:37:56 26 4
gpt4 key购买 nike

所以我意识到新的 CF11 移动功能已经收到了一些非常复杂的评论,但我想尝试一下,看看我是否可以将它们用于一些非常简单的设备检测,但是我无法真正工作.

例如,我正在查看 cfclientsettings 的文档,特别是页面上“设备检测”标题下的第一个示例。这是引用代码(我对其进行了一些格式化以确保它在此处易于阅读):

<cfClientSettings detectDevice=true /> 
<cfclient>
<cffunction access="public" name="showCanvasSupport" returntype="void">
<cfset evalStr = "document.getElementById('canvas').innerHTML='" & cfclient.canvas & "'">
</cffunction>
</cfclient>

Canvas support -<b id="canvas"></b><br>
<button onclick="invokeCFClientFunction('showCanvasSupport',null)">Show canvas support</button>

创建一个新的 .cfm 页面并添加此代码会在页面上生成文本和按钮,但单击按钮会在 Chrome 中引发 JS 错误:“Uncaught The function signature is invokeCFClientFunction(functionName [, arg1, arg2, arg3, ...]、successCallback、failureCallback)。functionName、successCallback 和 failureCallback 是强制性的。如果您没有 successCallback 或 failureCallback,则可以将 null 作为值传递。”

好吧,不太好。因此,我检查了更多文档并决定向 invokeCFClientFunction() 调用添加另一个空参数以修复缺少的回调。这至少纠正了 JS 错误,但现在单击按钮时什么也没有发生。

经过一番折腾,我得到了下面的代码,它仍然不起作用,但看起来更接近了:

<cfClientSettings detectDevice=true />
<cfclient>
<cffunction access="public" name="showCanvasSupport" returntype="void">
<cfscript>
document.getElementById('canvas').innerHTML=cfclient.canvas;
</cfscript>
</cffunction>
</cfclient>

Canvas support -<b id="canvas"></b><br>
<button onclick="invokeCFClientFunction('showCanvasSupport',null,null)">Show canvas support</button>

所以这段代码,当你点击按钮时,将 canvas 元素的 innerHTML 设置为“undefined”。太棒了。

老实说,我一直在尝试使用 cfclient 可以找到的所有示例,但没有一个有效。我缺少什么 secret 吗?我有一个潜在的怀疑,如果我不在 CFBuilder 中创建一个“移动项目”,那么这个东西就不起作用了吗?如果是这样,那就太愚蠢了,他们并没有在文档中真正说明这一点。

最后,我想做的是简单地使用 cfclient 进行一些基本的设备检测,并获取浏览器/设备的宽度来进行一些基本的媒体查询样式检测,非常类似于“使用媒体cfclientsettings 的查询”部分医生。我只想获取宽度,然后基于它设置一个 session 变量。

我在装有 IIS 的 Win7 机器上运行了一个完全修补的开发人员版本的 CF11。欢迎任何支持。

Adobe 论坛上的交叉帖子:https://forums.adobe.com/thread/1929387

最佳答案

在我的键盘上敲了一会儿之后,我的 cfclient 范围开始工作了。

我终于在文档中找到了这个页面:Device Detection

乍一看,此页面似乎与 cfclientsettings 几乎相同文档页面,甚至有相同的代码示例。

但是,cfclientsettings 在哪里? doc 使用这样的范围:

cfclient.canvas

Device Detection文档页面是这样写的:

cfclient.properties.canvas

繁荣。这当然就是全部了。真是浪费时间。如果您在其中添加“.properties”,则所有 cfclient 范围的变量都可以正常工作。

我仍然不确定 cfclientsettings doc 完全错误,或者如果它在不同的上下文中引用它。我一定会在这一点上添加评论。

(此外,对于这个示例,JavaScript 在两个文档版本上仍然失败,所以就是这样。)

希望这对想要进行简单的 ColdFusion 客户端设备检测的人有所帮助。

关于coldfusion - CFCLIENT:文档示例不起作用;什么都做不了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32057686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com