0

当我使用 javascript 使用表单输入元素动态创建foreignGroup时遇到问题。我可以在浏览器检查器上看到元素,但它不以某种方式可见。它应该是可见的!

javascript:

    var forObj = document.createElement("foreignObject");
        forObj.setAttribute("x", "100");
        forObj.setAttribute("y", "100");
        forObj.setAttribute("width", "200");
        forObj.setAttribute("height", "250");
        forObj.setAttribute("background", "red");


    var askInput = document.createElement("input");
        askInput.setAttribute("id", "test");
        askInput.setAttribute("type", "text");
        askInput.setAttribute("width", "300");
        askInput.setAttribute("height", "50");
        askInput.setAttribute("x", "100");
        askInput.setAttribute("y", "100");

        forObj.appendChild(askInput);

        mySvg.appendChild(forObj);

如果我将svg中的foreignGroup直接添加到php文件中,它可以工作并且没有任何问题。

这是错误还是什么,或者我错过了什么。

4

1 回答 1

0

这很容易,就像第一条评论说的那样,使用 document.createElementNS而不是document.createElement,如下所示:

var forObj = document.createElementNS("foreignObject");
        forObj.setAttribute("x", "100");
        forObj.setAttribute("y", "100");
        forObj.setAttribute("width", "200");
        forObj.setAttribute("height", "250");
        forObj.setAttribute("background", "red");


    var askInput = document.createElementNS("input");
        askInput.setAttribute("id", "test");
        askInput.setAttribute("type", "text");
        askInput.setAttribute("width", "300");
        askInput.setAttribute("height", "50");
        askInput.setAttribute("x", "100");
        askInput.setAttribute("y", "100");

        forObj.appendChild(askInput);

        mySvg.appendChild(forObj);
于 2015-07-31T21:08:16.470 回答