1

我正在为需要能够编辑非常基本的 SVG 文件的项目实施自定义版本的SVG-edit 。要求是这些 SVG 文件中的文本是可编辑的,而不是图像。

因此,其中一个文件的常见示例将在顶部有一个文本元素,在其下方有一个图像元素。是否有任何属性可以添加到图像元素,因此我可以在 javascript 编辑器本身上进行任何配置,以防止用户更改图像元素?

(显然,我可以在不使用 SVG 编辑的情况下实现这一点。即,只需为用户输入一个 TextBox,并用其值替换 SVG 上的文本元素,但这很难看。)

非常感谢任何帮助..

4

1 回答 1

4

要 SVG Edit,您的所有 SVG DOM 都是可编辑的,即使有诸如readonlySVG Edit 之类的属性也会忽略它,除非您自己实现它。

我也有自己的 SVG Edit 实现,我碰巧遇到了一个和你自己类似的用例。我所做的是隐藏图层面板并将可编辑的内容放在最顶层。这样用户就无法访问底层。您必须修改您的 SVG 文件,使其看起来像这样......

<svg xmlns="http://www.w3.org/2000/svg">
    <g>
      <title>Layer 1</title>
      <!-- NON EDITABLE CONTENT -->
    </g>
    <g>
      <title>Layer 2</title>
      <!-- YOUR TEXT ELEMENTS -->
    <g>
</svg>

然后你只需用一些 CSS 隐藏图层面板

#svg_editor #sidepanels {
  display: none;
}

http://tinyurl.com/9q9s7d9

(指向 SVG Edit 主干构建的 URL 链接,但它被缩短了,因为它加载了编码的 SVG 字符串)

于 2012-09-26T09:32:06.770 回答