我是ColdFusion的新手。 我试图将ColdFusion值访问到ajax函数。
<cfset lagtime=#data# />
<script type="text/javascript" language="JavaScript">
function test(){
var adata =<cfoutput>#lagtime#</cfoutput>;
alert(adata);
}
</script>
我想将lagtime
值访问变量adata
。
如果有人知道请帮助我。
谢谢
答案 0 :(得分:1)
您可能遇到的问题是数据参数中包含的值可能是导致javascript中断的字符串。以防我将输出包装在单引号中,告诉javascript将您的值视为字符串。
此外,我不确定您的HTML是什么样的。为了完整起见,我已经包含了一个完整的实例。另请注意,并非真正需要lagtime变量。
<cfset data = "hello">
<cfoutput>
<html>
<head>
<script type="text/javascript" language="JavaScript">
function test()
{
var adata = '#data#';
alert(adata);
}
</script>
</head>
<body>
<input type="button" value="Execute Test" onclick="test();">
</body>
</html>
</cfoutput>
另外要明确你没有访问coldfusion变量。你正在做的是使用coldfusion动态创建javascript。例如这就是为什么无法将一个javascript变量分配给cfml模板中的coldfusion变量。
答案 1 :(得分:0)
如果数据类型为<html><head><script language="javascript">
<!--.
.
.
</script>
<noscript>
<title>No JavaScript Error</title>
<body>
<h3 align="center">Your Browser does not support JavaScript, or it is disabled.<br/>To run this application, you must enable JavaScript!!</h3>
</body></noscript></head></html>
,请使用:
string
答案 2 :(得分:0)
我鼓励使用toScript()
函数为Javascript分配ColdFusion变量。它还支持转换复杂的数据类型,如数组,结构和查询。
<cfset lagtime=#data# />
<script type="text/javascript" language="JavaScript">
<cfoutput>
function test(){
var #toScript(lagtime, "adata")#;
alert(adata);
}
</cfoutput>
</script>
要清楚,它与动态声明一个javascript变量的功能相同,但它可以省去类型匹配和符号。您可以忘记符号并专注于您的数据。想象一下,如果此变量是query
或array
对象,则会产生痛苦。