【问题标题】:How to create custom Insert menu items in dreamweaver?如何在 Dreamweaver 中创建自定义插入菜单项?
【发布时间】:2011-11-02 03:39:46
【问题描述】:

我需要创建一个插入一些专有标记的菜单项,例如像

这样的代码标记
<###LoginForm###>

由我的 CMS 使用。

我发现它很难——从逻辑上讲,根据文档,我应该能够通过编辑程序文件中 Dreamweaver 文件夹中的配置/菜单中的 menus.xml 来做到这一点。但这并没有按预期工作。我试图复制插入 HR 标签的项目,替换我的“标签”,但没有插入任何内容。

在 XML 中引用的 configuration/objects/common 中有文件,这些文件似乎包含可插入的代码块,即有一个 HR.htm,它看起来应该插入 &lt;HR&gt;,但它在插入 &lt;hr /&gt; 时插入XHTML 中使用了实际的菜单项,所以它们已经过时了吗?

我非常希望有人给我一个万无一失的食谱来创建一个菜单,该菜单允许我插入我自己的类似标签的代码 sn-ps 如上所述。

【问题讨论】:

    标签: xml configuration menu dreamweaver


    【解决方案1】:

    创建 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 文档中对我有用。

    【讨论】:

    • 这正是我所需要的。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2023-03-11
    • 2013-06-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多