Textarea在foreignObject中

时间:2013-10-10 18:08:52

标签: javascript dom canvas svg textarea

我在输入使用svg。

创建的textarea时遇到了一些问题

以下是代码:

var data = "<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'>" +
             "<foreignObject width='100%' height='100%'>" +
               "<div xmlns='http://www.w3.org/1999/xhtml' style='font-size:40px;position:fixed;top:100px;left:50px;'>" +
               "<textarea cols='30' rows='10'></textarea>" +
                 //"<em>I</em> like <span style='color:white; text-shadow:0 0 2px blue;'>cheese</span>" +
               "</div>" +
             "</foreignObject>" +
           "</svg>";
            var DOMURL = self.URL || self.webkitURL || self;
            var img = new Image();
            var svg = new Blob([data], { type: "image/svg+xml;charset=utf-8" });
            var url = DOMURL.createObjectURL(svg);
            img.onload = function () {
                ctx.drawImage(img, 0, 0);
                DOMURL.revokeObjectURL(url);
            };
            img.src = url;

            var doc = document.implementation.createHTMLDocument("");
            doc.write(html);
            doc.documentElement.setAttribute("xmlns", doc.documentElement.namespaceURI);
            var html = (new XMLSerializer).serializeToString(doc);

它将我需要的东西textarea生成到画布中,但阻止写入/编辑。怎么了? 我重用了以下代码: https://developer.mozilla.org/en-US/docs/HTML/Canvas/Drawing_DOM_objects_into_a_canvas

1 个答案:

答案 0 :(得分:0)

您完全掌握了自己的所作所为:drawn上的canvas个文字区域。

如果没有手动管理每件事情,就不可能像Textarea DOM Element那样互动。