Adobe ColdFusion 8

cfajaximport

描述

为页面中的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文件。

  • 如果你在一个没有使用任何其他AJAX JavaScript函数的页面中使用ColdFusion AJAX JavaScript函数(如ColdFusion.navigate,ColdFusion.Ajax.sumitForm或ColdFusion.Log.info),那么你要用不带属性的cfajaximport标签来导入基本的JavaScript函数。例如,当页面中没有包含任何基于AJAX的标签时使用此标签。
  • 如果以下几个条件同时成立
    • 你在cflayoutarea,cfpod或者cfwindows标签中用了source属性,或者在cfdiv标签中用了bind属性。
    • 以上属性中指定的文件包含下表中指定的任意标签(或者标签-属性)[译者注:不但要注意标签或标签-属性,还要注意右边的条件]
    • 你没有在这个页面的顶级(上级)页面中用到下表中的每个标签(或者标签-属性)
  • 如果这几个条件成立, 那么顶级页面中必须用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">