创建 Dreamweaver 扩展/插件的文档可以进行大量改进。您可能阅读了如何添加菜单项,但它可能没有说明您应该在属性值中包含什么以完全按照您的意愿行事。尝试复制其他内容是一个很好的起点,但某些内容的实际运作方式可能存在一些“魔力”。
如果这是一段 sn-p 代码,为什么不使用 Snippets 面板(Window -> Snippet)?您甚至可以选择为单个 sn-ps 分配键盘快捷键?
对于对象(插入菜单和插入栏用于向页面添加代码),内置标签(例如 HR)将标签的 XHTML 兼容版本插入到具有 XHTML doctype 的文档中。这是设计使然,并且是 Dreamweaver 内部的。
如果您在 HR 条目上方的 menus.xml 中添加了以下菜单项:
<menuitem id="DWMenu_Insert_LoginForm" name="LoginForm" enabled="(dw.getActiveWindow(true) != null && dw.getActiveWindow(true).allowsEdits()) && dw.getFocus() != 'browser' && dw.getDocumentDOM() != null && dw.getDocumentDOM().getParseMode() == 'html'" command="var dom = dw.getDocumentDOM(); var offsets = dom.source.getSelection(); dom.source.replaceRange(offsets[0], offsets[1], '<###LoginForm###>')" />
注意:我不再使用文件属性,而是使用了允许运行 JavaScript 代码的命令属性,在这种情况下:
var dom = dw.getDocumentDOM(); var offsets = dom.source.getSelection(); dom.source.replaceRange(offsets[0], offsets[1], '<###LoginForm###>')
获取对文档的引用,查找文档中的选择偏移量并用您的代码块替换选择。
我没有以所有可能的方式对此进行测试,但在纯 HTML 和 XHTML 文档中对我有用。