我想知道是否可以在面板中包含 SVG 内容(或在 GWT 中可以使用的任何内容),能够以编程方式向 SVG 添加更多内容(例如添加圆或曲线),并处理鼠标事件(这将是在 SVG 或 GWT 中?)。我尝试创建一个 HTML 对象,添加以下内容:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="50" cy="50" r="30" />
</svg>
那没有用(输出中没有任何可见),但我不确定是因为我做错了还是不允许这样做。
我可以使用 Google Visualization 的 LineChart 在 GWT 中做一个简单的示例,但我想摆脱 Google Visualization 并能够自己生成 SVG 并进一步自定义它。我环顾四周,许多资源都指向使用 Canvas,但我不确定这是否是最好的路线。
我对这里的例子也有点困惑。我尝试了一个简单的复制粘贴在本地尝试,但它似乎根本不起作用。但是,我能够获得另一个仅使用 HTM 的示例(嵌入 src 指向 SVG 文件)L + 单独的 SVG 文件,但我无法使用 GWT 使用 RootPanel.get(...) 访问它。
编辑:我已经阅读了有关 SVG 不能与托管浏览器一起使用的信息,并且编译它确实有效,但我不确定如何引用 SVG(我已通过 将其放入 HTML 中)。如果我可以访问它,那么大概我可以添加到它的innerHTML。我已经尝试过 RootPanel.get("hi").getElement().setInnerHTML("...") 但这似乎不起作用还是我搞砸了? 我想目标是能够操作我以某种方式链接的 SVG 文件(无论是在 GWT 还是在 HTML 中),并能够根据用户的输入对其进行修改。
第二次编辑 到目前为止,我一直在实际的 SVG 文件中编写功能。在我们的设置中,我们的 SVG 是一个嵌入式对象,我们将“文档”传递给嵌入式 SVG。将信息从嵌入对象传入和传出 HTML 是非常可行的,因为 HTML 可以访问我们的 SVG 函数,而 SVG 可以访问“文档”。
这样做有更透明的方法(Rapahel),FireBug 可以直接看到 SVG,这很好,但现在不太必要。到目前为止,我认为我看过的任何解决方案都不是 IFrame,但我可能是错的。一点警告,SVG 有时会很慢。
我想说我的问题已经解决了(有点?),但我目前没有使用 Raphael、jQuery 或 GWT,但如果我想使用 GWT,我在回答中描述的方法应该仍然有效。