当前页面位置: » 丰搜网 » 文档中心 » 详细内容
深入dreamweaver插件的奥秘(1)
1.1. xml的基本知识 xml的编写应该注意以下几点:
- 所有的元素必须有闭合标记;
- xml大小写敏感;
- 嵌套要相互呼应;
- 所有的xml代码都要有根元素 ;
- <xmltag />和<xmltag></xmltag>相同,只是没有内容
1.2. dreamweaver特定的xml标记
dreamweaver的高度可定制性,使用户可以定制出一个舒适、方便、高效的工作环境,典型的定制方法有:
(1)安装插件
(2)定制菜单
(3)定制快捷方式
(4)修改objects浮动面板
(5)定制dreamweaver系统参数
所有的定制方法,都是通过修改dreamweaver相应的文件或者系统目录,而dreamweaver的系统是架设在xml结构上,我们所讲的插件制作以及安装,直接影响了相应的文件,比如菜单、快捷方式、浮动面板等等,所以对于dreamweaver的特定xml标记和规定必须有一定的了解,特别是菜单文件menus.xml和插件预备文件.mxi的格式。
2.1.1 menus.xml文件的分析
在dreamweaver安装目录下的configurstion/menus/下能找到menus.xml文件,可以用xml编辑器或者文本编辑器打开,建议读者拷贝一份然后打开,以免操作失误导致系统工作异常。
打开menus.xml你会发现,仔细分析可以看出menus.xml简化结构:
<shortcutlist id="dwmainwindow">
<shortcut key="cmd+shift+z" file="xx.htm" arguments="'xx'" id="xx" />
</shortcutlist>
<menubar name="xx" id="xx" platform="win">
<menu name="_xx" id="xx">
<menuitem name="xx" key="cmd+n" command="xx)" id="xx" />
</menu>
<separator id="xx" />
</menubar>
dreamweaver菜单的特定xml标记详细解释如下:
注:{}里的属性是可选项
| (1)<menubar></menubar> |
| 说明: | 定义dreamweaver菜单结构中菜单条的内容 |
| 属性列表: | name, {app}, id, {platform} - name:菜单条的名称
- {app}:产品名,有效值为"dreamweaver"和"ultradev",缺省的同时适用于dreamweaver和ultradev
- id:菜单条的id,每一个都是唯一的
- {platform}: 菜单有效的平台,有效值为"win"和"mac"
|
| 内容: | 每个<menubar>标签可以包含一个或多个<menu>标签 |
| 上级标签: | 没有 |
| 样例: | dreamweaver文档窗口使用的菜单定义如下: <menubar name="main window" id="dwmainwindow"> <!-- 一些menu标签--> </menubar> |
| (2)<menu></menu> |
| 说明: | 定义dreamweaver菜单结构中菜单或者子菜单 |
| 属性列表: | name, {app}, id, {platform} - name:菜单名,下划线"_"后面的字符是加速键
- {app}:产品名,有效值为"dreamweaver"和"ultradev",缺省的同时适用于dreamweaver和ultradev
- id:菜单的id,每一个都是唯一的
- {platform}: 菜单有效的平台,有效值为"win"和"mac"
|
| 内容: | 每个<menu>标签可以包含一个或多个<menuitem>标签、一个或多个<separator>标签,或者用包含的<menu>标签创建子菜单,当然还可以包含标准的html注释字段,如:<!--注释内容--> |
| 上级标签: | 包含在<menubar>内 |
| 样例: | <menu name="_file" id="dwmenu_file"> <!-- menuitem, , menu, and comment tags here --> </menu> |
| (3)<separator></separator> |
| 说明: | 定义菜单上的分隔线 |
| 属性列表: | {app} {app}:产品名,有效值为"dreamweaver"和"ultradev",缺省的同时适用于dreamweaver和ultradev |
| 内容: | 空 |
| 上级标签: | <menu> |
| 样例: | <separator /> |
| (4)<menuitem></menuitem> |
| 说明: | 定义菜单项 |
| 属性列表: | name, id, {app}, {key}, {platform}, {enabled}, {arguments}, {command}, {file}, {checked}, {dynamic} - name:菜单名,下划线"_"后面的字符是加速键
- id:菜单的id,每一个都是唯一的,添加菜单项时要注意
- {app}:产品名,有效值为"dreamweaver"和"ultradev",缺省的同时适用于dreamweaver和ultradev
- {key}:命令的快捷键
cmd [window里表示ctrl键,macintosh里表示command键] alt或opt[window里表示alt键,macintosh里表示option键] shift [shift键] ctrl [ctrl键] + [表示同时按下几个键] 特殊键 [f1到f12,pgdn, pgup, home, end, ins, del, tab, esc, bksp, space] - {platform}: 菜单有效的平台,有效值为"win"和"mac",如果不指定,那么该菜单在两个平台上都会出现;如果希望在不同的平台上出现不同的菜单,可以设置相同的name,但是设置不同的id,同时设置不同的platform;
- {enabled}:默认值为true,表示正常;false表示灰暗,表示该菜单不是于当前操作;
- {arguments}:用于向javascript函数传递参数
- {command}:指定选择菜单时执行的javascript程序
- {file}:指定包含菜单执行的javascript程序的html文件,文件的路径相对于configuration目录
- {checked}:被一个javascript表达式附值,当值为true时,表示该菜单项会显示为已经选择
- {dynamic}:如果一个html文件定义了本属性,表示本菜单是动态监测的,通过该文件的javascript来动态控制本菜单的显示;当然首先必须定义file属性,用以指定html文件的位置
|
| 内容: | 空 |
| 上级标签: | <menu> |
| 样例: | <menuitem name="_new" key="cmd+n" enabled="true" command="dw.createdocument()" id="dwmenu_file_new" /> |
| (5)<shortcutlist></shortcutlist> |
| 说明: | 快捷键列表 |
| 属性列表: | {app}, id, {platform} - {app}:产品名,有效值为"dreamweaver"和"ultradev",缺省的同时适用于dreamweaver和ultradev
- id:快捷键列表的id,有效值为:"dwmainwindow", "dwmainsite", "dwtimelinecontext", 和"dwhtmlcontext".
- {platform}: 菜单有效的平台,有效值为"win"和"mac"
|
| 内容: | 可以包含一个或多个<shortcut>标签、标准的html注释 |
| 上级标签: | 没有 |
| 样例: | <shortcutlist id="dwmainwindow"> <!-- shortcut and comment tags here --> </shortcutlist> |
| (6)<shortcut></shortcut> |
| 说明: | 指定快捷键 |
| 属性列表: | key, {app}, {platform}, {file}, {arguments}, {command}, id, {name} - key:同<menuitem>
- {app}:产品名,有效值为"dreamweaver"和"ultradev",缺省的同时适用于dreamweaver和ultradev
- {platform}: 菜单有效的平台,有效值为"win"和"mac"
- {file}:同<menuitem>,只是会覆盖command的设置
- {arguments}:同<menuitem>
- {command}:同<menuitem>,只要设置file和command中的一个就够了
- id:独一无二的快捷键id
- {name}:快捷键的名称,如快捷键ctrl+w为"close"
|
| 内容: | 空 |
| 上级标签: | <shortcutlist> |
| 样例: | <shortcut key="cmd+shift+z" file="menus/mm/edit_clipboard.htm" arguments="'redo'" id="dwshortcuts_edit_redo" /> |
所有操作均针对menus.xml,退出dreamweaver然后操作,注意备份!
| 操作 | 具体方法 |
| 增加菜单 | 增加新的一对<menu></menu> |
| 增加子菜单 | 在相应的菜单<menu>里增加新的一对<menu></menu> |
| 删除菜单 | 完整删除相应的<menu></menu> |
| 移动菜单 | 移动相应的<menu></menu>到预定的位置 |
| 增加分隔线 | 在预定位置的<menuitem>里增加<separator /> |
| 删除分隔线 | 删除预定位置的<separator /> |
.mxi文件模版代码:
<macromedia-extension name="xx" version="1.1" type="object或command或behavior">
<products>
<product name="dreamweaver或ultradev" version="4" primary="true" />
</products>
<author name="作者名" />
<description>
<![cdata[...插件描述...]]>
</description>
<ui-access>
<![cdata[...插件用法...]]>
</ui-access>
<files>
<file name="xx.htm" destination="$dreamweaver/configuration/xx" />
<file name="xx.gif" destination="$dreamweaver/configuration/xx" />
<file name="xx.js" destination="$dreamweaver/configuration/xx" />
</files>
<configuration-changes>
<menu-insert insertafter="xx" skipseparator="true">
<menuitem name="xx" file="objects/xx.htm" id="xx" />
<separator id="xx" />
</menu-insert>
</configuration-changes>
</macromedia-extension>