将SVG字符串从cookie传递给RaphaelJS

时间:2011-11-22 11:57:45

标签: svg raphael

我有一个名为'plan'的cookie,其中包含一个表示RaphaelJS画布的字符串值,以及其中的一些对象作为SVG。确切的路径等可能会有所不同,但这里通常会保存到cookie中的内容:

<svg height="100%" version="1.1" width="100%" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative;"><desc>Created with Raphaël 2.0.1</desc><defs/><path style="" fill="none" stroke="#d9e026" d="M153,74L384,74L384,304L0,304L0,150L153,150L153,74"/><path style="" fill="#333333" stroke="#d9e026" d="M160,160L160,220L220,220A60,60,0,0,0,160,160" transform="matrix(1, 0, 0, 1, -103, 84)"/><rect x="121.53846153846155" y="158.5" width="76.92307692307692" height="3" r="0" rx="0" ry="0" fill="#333333" stroke="#d9e026" style="" transform="matrix(1, 0, 0, 1, -89, -9)"/><rect x="83.0769230769231" y="156" width="76.92307692307692" height="5" r="0" rx="0" ry="0" fill="#333333" stroke="#d9e026" style="" transform="matrix(0, -1, 1, 0, 223.038, 364.039)"/></svg>

现在我需要能够将这些数据传递到新页面上的新raphaeljs对象中,并在其中添加更多路径等。

任何人都可以建议如何做到这一点,因为我很难知道从哪里开始?

谢谢!

2 个答案:

答案 0 :(得分:2)

The Rapres 2中的新功能也很简单,这也简化了这些任务 Paper.add

http://www.irunmywebsite.com/raphael/additionalhelp.php?v=2&q=paper.add

答案 1 :(得分:0)

更详细地研究这一点,事实证明并非如此简单。 SVG代码仅适用于较新的浏览器(IE8 +),因此这种方法在IE7或更低版​​本中不起作用。尽管如此,Raphael对象确实存储了在它到达DOM之前能够使用的所需数据。有一个非常方便的插件我发现序列化Raphael数据然后反序列化输出。虽然我在反序列化部分遇到了一些问题,但理论上这应该是解决方案:https://github.com/jspies/raphael.serialize

因此插件基本上允许我这样做:

Raphael canvas > serialized JSON object > String > Cookie > String > serialized JSON object > Raphael canvas.