Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript svg画布中的本机按钮标记_Javascript_Svg_Raphael - Fatal编程技术网

Javascript svg画布中的本机按钮标记

Javascript svg画布中的本机按钮标记,javascript,svg,raphael,Javascript,Svg,Raphael,我需要在SVG画布中放置一个按钮标记,有办法吗?(我用的是拉斐尔JS) 我知道我可以在svg画布中“绘制”一个按钮,并对onclick事件进行编码,但我希望保留浏览器按钮的本机外观。多谢各位 可以使用SVG foreignObject元素在SVG中使用HTML按钮: 规范中包含了一个如何使用它的示例 不幸的是,我不知道怎样才能最好地使用拉斐尔的foreignObject。我相信foreignObject并没有作为rapaheljsapi的一部分公开。原因是,可能没有一种干净的方法可以在IE上使用

我需要在SVG画布中放置一个按钮标记,有办法吗?(我用的是拉斐尔JS)


我知道我可以在svg画布中“绘制”一个按钮,并对onclick事件进行编码,但我希望保留浏览器按钮的本机外观。多谢各位

可以使用SVG foreignObject元素在SVG中使用HTML按钮:

规范中包含了一个如何使用它的示例

不幸的是,我不知道怎样才能最好地使用拉斐尔的foreignObject。我相信foreignObject并没有作为rapaheljsapi的一部分公开。原因是,可能没有一种干净的方法可以在IE上使用VML实现相同的目标。但是,raphaeljs确实使访问其对象的底层本机SVG DOM节点变得相当容易,因此,如果IE兼容性不是应用程序所必需的,那么使用常规SVG DOM API使用foreignObject应该相当容易。例如,您可以执行以下操作:

var paper = Raphael("canvas", 640, 480);
var svgRoot = paper.canvas; //everywhere except IE, this is an SVGSVGElement
var fo = document.createElementNS(paper.svgns,"foreignObject")
svgRoot.appendChild(fo);
//then add your HTML DOM nodes to fo here using regular HTML DOM...