插入对象是如何运作的?
当用户通过插入面板或通过菜单选定一个对象,这之后执行的过程如下:
1.Dreamweaver调用canInsertObject()函数判断是否显示对话框.
2.在对相对应的文件中搜索"form"(表单的意思,译者注)标记,如果存在"form"标记而且对话框显示的话,Dreamweaver调用windowDimensions()函数判断放置表单的对话框的大小,如果对应的文件中不存在"form"标记,Dreamweaver不显示对话框,跳过步骤2
3.如果第1步中Dreamweaver显示了对话框,用户输入该对象的参数(比如表格的行数,列数),点击确定.
4.调用objectTag(),他返回的值被插入当前的位置之后(如果当前选定了文字,将不被替换).
5.如果Dreamweaver没找到objectTag()函数,用insertObject()函数代替.
向插入面板中添加对象
每一个对象文件关联着一个18*18像素大小出现在插入面板上的的图像.
如果你的图像大于18*18,Dreamweaver将自动转换成18*18,如果你没有图像将使用默认的图像.
要点:虽然对象文件可以存放在单独的文件夹内,但是每个文件名必须是唯一的!因为某些函数不单单在指定文家夹内搜索.比如如果有两个文件叫button.htm,Dreamweaver不能区分.
定义插入面板
插入面板的定义是通过Configurations/Objects/insertbar.xml这个文件进行的,这个文件中包含了每个对象的定义信息.
用户第一次运行Dreamweaver时插入面板在编辑区上方,此后这个面板显示不显示和现实时的位置等信息将被保存到注册表中.
下面就举例说明insertbar.xml文件的格式:
<?xml version="1.0"?>插入面板中出现的几种脚本.
<insertbar>
<category id="DW_Insertbar_Common" folder="Common">
<button id="DW_TagDialog"
image="Objects/Common/tagDialog.gif?http://www.xvna.com"
enabled="true"
showIf="_VIEW_CODE"
command="dw.getDocumentDOM().setView('code')"/>
<separator showIf="_VIEW_CODE"/><button id="DW_BR"
image="Objects/Common/BR.gif?http://www.xvna.com"
enabled="true"
file="Objects/Common/br.htm"/>
...
</category>
</insertbar>
●<insertbar></insertbar>
作用:文件开头结尾标志
●<category></category>
作用:定义一个标签页(译者注:因为Dreamweaver插入面板上的按钮太多,因此分成许多"标签页",比如:常用,文本等)
例如:
<category id="DW_Insertbar_Text" folder="Text">
属性id 每一个标签页有一个唯一的 id, 比如上文的 DW_Insertbar_Common 属性。 folder 存放该标签页所有按钮的文件夹名,比如上文的 common 存放在<insertbar></insertbar>之间
●<button>
作用:定义一个按钮
例如:
<button id="DW_mantou"属性id 每一个按钮有一个唯一的id,比如上文的DW_TagDialog
image="Common\mantou.gif?http://www.xvna.com"
enabled=""
showIf=""
file="Common\mantou.htm"/>
●<separator>
作用:定义一个状态切换栏(这样说很含糊,很难理解,请看排版标签页中的Standard View和Layout View看效果)
存放在<category></category>之间
●<checkbutton>
作用:定义一个状态切换按钮
例如:
<separator showIf=""/>属性id 每一个切换按钮有一个唯一的id,比如:DW_StandardView
<checkbutton id="DW_StandardView"
name = "Standard View"
image=""
enabled="_VIEW_DESIGN"
checked="!_VIEW_LAYOUT"
command="dw.getDocumentDOM().setShowLayoutView(false)"/>
<checkbutton id="DW_LayoutView"
name="Layout View"
image=""
enabled="_VIEW_DESIGN"
checked="_VIEW_LAYOUT"
command="dw.getDocumentDOM().setShowLayoutView(true)"/>
<separator showIf=""/>