Raphaël中的可编辑文本

5

有没有一种方法可以在Raphaël JS中使svg文本可编辑,就像SVG 1.2规范中描述的那样(http://www.w3.org/TR/2004/WD-SVG12-20040226/#text-edit)?

textelement.attr("editable", "true");

我原本希望它能够添加可编辑属性到文本元素,但实际上没有。

如果没有其他办法的话,我想我只能使用悬停的html文本元素了...


你需要支持哪些浏览器? - Erik Dahlström
Raphaël支持所有的浏览器,但我猜这个问题没有解决方案,所以我将用HTML输入替换所有的SVG文本元素。 - treppo
当用户点击文本时,您可以创建一个浮动编辑框,然后用新输入的文本替换原来的文本。或者,您可以让Dmitry来实现它:-) - graham.reeds
1
这个问题是关于文本框的。OP从未提到过先知和山。 - graham.reeds
2个回答

3
你提供的链接是一个草案(正在进行中,可能会改变)。然而,SVG Tiny 1.2规范几乎有相同的内容,并且它是W3C推荐。当然,这并不能使每个实现都按照规范执行,但至少它是稳定的。
如果你正在寻找支持在SVG文本元素上进行'可编辑'的实现,则Opera是一个例子。

2
我正在寻找一种基于Raphaël的解决方案,因为我的所有文本元素都已经以这种方式组合。 - treppo
假设textelement是一个raphaël元素对象,您可以使用textelement.node.setAttribute("editable", "simple")。但这只能帮助您解决一部分问题,因此,如果您想要跨浏览器工作,通常需要使用html元素。 - Erik Dahlström

2

Raphael并不是100%的SVG实现,它只是使用SVG和VML作为基础。因此,有些东西可能会正常工作,而有些东西可能不如你预期地正常工作,还有一些东西根本无法工作。


2
我只是想确保没有可能性,因为在项目的这个阶段将所有我的svg文本元素更改为html元素会非常耗时。 - treppo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接