为页面中的ColdFusion AJAX标签及库控制JavaScript文件的导入。
<cfajaximport cssSrc = "local URL path" scriptSrc = "local URL path" tags = "comma-delimited list">
注:你可以将一个结构型变量指定为属性集合。将attributeCollection的值指为结构的名称,结构中key的名称与属性的名称相同。
历史
ColdFusion 8:增加此标签
属性
| 属性 |
必须/可选 |
默认 |
描述 |
|---|---|---|---|
cssSrc |
可选 |
scriptsrc/ajax |
指定Ajax库(除了rich text editor之外)使用的CSS文件的路径,相对于WEB站点的根目录。这个目录必须和/web_root/CFIDE/scripts/ajax/resources这个目录有相同的目录结构,包含相同的CSS文件及CSS文件里涉及的图片文件。 这个属性使你可以对不同的程序为ColdFusion AJAX控件创建不同的样式。 |
scriptSrc |
可选 |
在CFAdministrator程序中设定的scriptsrc值。 默认为/CFIDE/scripts/ |
指定ColdFusion使用的客户端脚本的目录,相对于WEB站点的根目录。这个目录包含着JavaScript文件和AJAX库使用的CSS文件的默认目录。 如果你使用此属性,那么cfajaximport标签必须在所有的ColdFusion AJAX标签之前。所有的标签都将依赖这个标签来寻找相应的脚本和组件。 一个页面中的cfform和cfajaximport标签中,只能存在一个scriptsrc属性。给cfajaximport中的scriptsrc属性赋值时,cfform中的scriptsrc属性也会得到这个值。
|
tags |
可选 |
|
一个由标签或者“标签-属性”组成的,由逗号分隔的列表。 如果你指定了这个属性,那么它必须包含你在这个页面和在这个页面的任何一个标签中的source属性中指定的页面中所有的ColdFusion AJAX标签。[译者注:可以理解为显式的指定导入的文件,这个解释似乎不太明了,还是看后面的用途吧。] 请阅读“用途”来获取本属性的有效值列表。 |
使用scriptsrc和cssSrc属性
scriptsrc属性用于JavaScript文件不在默认位置时。当服务器设置禁止访问/CFIDE目录时,这个属性可能会派上用场。
scriptsrc属性的默认值是在ColdFusion Administrator的Server Settings > Setting页面的Default CFFORM ScriptSrc Directory 选项里设定的。cfajaximport中这个属性的值会覆盖cffrorm中这个属性的值。
你只能在cfajaximport在顶级页面时使用这个属性;顶级页面即被客户端直接请求的页面[译者注:大体来说就是说不能被包含在别的文件中]。例如:你不能在cfwindow标签的source属性指定的页面中使用这个标签。
当你使用到scriptsrc属性时,所指定的目录必须和/CFIDE/scripts目录结构相同。例如,如果你指定了scriptsrc="/resources/myScripts/",那么AJAX使用的JavaScript文件必须在/resources/myScripts/ajax目录下。
scriptsrc属性指定的目录对当前页中所有此标签之后的标签都起作用——不仅仅是基于AJAX的标签。因此这个目录结构必须包含这些标签要使用的所有的客户端文件。例如:如果该页面上的cfform标签是Flash或者小程序格式的,必须将CF_RunActiveContent.js文件也拷贝到scriptsrc属性所指定的目录中。
cssSrc属性用来指定ColdFusion AJAX库所需的CSS文件的所在位置。这个属性指定的文件夹在当前页将代替scriptsrc/ajax/resources目录。因此如果所有指定了scriptsrc的页面都同时指定了cssSrc目录,你就不用将Coldfusion AJAX CSS文件包含在scriptsrc目录中了。
使用tag属性及不填写属性
如果你在包含AJAX UI库标签的页面中不使用cfajaximport标签,一般来说ColdFusion会自动地获取相应的JavaScript文件。但是在以下几种情况,你必须显式的导入JavaScript文件。
如果这几个条件成立, 那么顶级页面中必须用cfajaximport标签,并使用tags属性。tag属性的值要包括只在顶级页面之外的页面使用的标签(或者标签-属性)。
[译者注:ColdFusion在自动导入相关文件的时候,对于子页面,Coldfusion不会自动去寻找子页面里需要加载什么,所以对于存在子页面的,在下表所示的条件满足,并且父页面没有用到那些标签时,应显式的加载]
表: 你可以在tag属性中指定下表中的任意多个值:
| 属性值 |
限定条件 |
|---|---|
| cfdiv | cfdiv标签 |
| cfform | 在cfpod,cfwindow或者cflayoutarea标签体中的表单 |
| cfgird | AJAX格式的cfgird标签 |
| cfinput-autosuggest | 指定了autosuggest属性的cfinput标签 |
| cfinput-datefield | HTML格式的指定了datefield属性的cfinput标签 |
| cflayout-border | 将type属性的值指定为"border"的cflayout标签 |
| cflayout-tab | 将type属性的值指定为"tab"的cflayout标签 |
| cfmenu | cfmenu标签 |
| cfpod | cfpod标签 |
| cfsprydataset-JSON | 生成JSON格式的数据集的cfsprydataset标签 |
| cfsprydataset-XML | 生成XML格式的数据集的cfsprydataset标签 |
| cftextarea | HTML格式的cftextarea标签 |
| cftooltip | cftooltip标签 |
| cftree | HTML格式的cftree标签 |
| cfwindow | cfwindow标签 |
本范例为AJAX库使用的脚本和AJAX CSS文件都制定了不同的位置,并且显式的导入了cftree,cftooltip这两个javascript文件。
<cfajaximport cssSrc="/collegeApp/application/cssFiles" scriptsrc="/collegeApp/ajaxScripts" tags="cftooltip, cfwindow">