2013-07-08 21 views
20

Ho il seguente oggetto svg che se metto nella pagina html direttamente senza usare il codice (statico) lo rende correttamente.L'SVG reso dinamicamente non viene visualizzato

ma lo stesso contenuto svg se inserisco nella mia pagina html utilizzando JavaScript non viene mostrato e se lo apro in firebug e ispeziono svg e provo a modificare il tag svg, viene visualizzato.

Quale potrebbe essere il problema

<svg height="100" width="100"> 
    <rect width="100" height="100" style="fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)"></rect> 
</svg> 

sto aggiungendo svg dinamicamente utilizzando sottostante Codice, qui contenitore sarà il mio div che è lì sotto il corpo

 viewPort = document.createElementNS('http://www.w3.org/2000/svg','svg'); 

     viewPort.setAttribute('height', 100); 

     viewPort.setAttribute('width', 100); 

     container.innerHTML = ''; 

     container.appendChild(viewPort); 

Dopo questo, io sto aggiungendo rect all'interno utilizzando

  boardElement = document.createElement('rect'); 

      boardElement.setAttribute('width', '100'); 

      boardElement.setAttribute('height', '100'); 

      boardElement.setAttribute('y', '1'); 

      boardElement.setAttribute('x', '1'); 

      boardElement.setAttribute('style', "fill:rgb(0,0,255);stroke-width:1;stroke:rgb(0,0,0)"); 


viewPort.appendChild(boardElement); 
+0

Come hai creato lo SVG e come si inserisce il documento? – Sirko

+0

Come ha detto Sirko, mostrandoci direttamente dove il problema ci potrebbe aiutare :) Forse mostrandoci la parte javscript che genera quello svg? – Lkrups

+0

Ho modificato il codice e aggiunto codice su come sto aggiungendo svg in modo dinamico. –

risposta

27

L'elemento boardElement deve essere dichiarato li ke così

boardElement = document.createElementNS("http://www.w3.org/2000/svg", "rect");

+2

Questo ha risolto il mio problema, ma non capisco perché sia ​​così. Perché sia ​​il codice html reso ora è lo stesso (source html). –

+4

Ho letto su questo problema e ha spiegato perché :) http://stackoverflow.com/questions/8173217/createelement-vs-createelementns. Felice codifica – Lkrups

+0

OK, grazie –

Problemi correlati