2011-11-21 69 views
40

Làm cách nào để tạo phần tử SVG có JavaScript? Tôi đã thử điều này:Tạo thẻ SVG bằng JavaScript

var svg = document.createElement('SVG'); 
    svg.setAttribute('style', 'border: 1px solid black'); 
    svg.setAttribute('width', '600'); 
    svg.setAttribute('height', '250'); 
    svg.setAttribute('version', '1.1'); 
    svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg'); 
document.body.appendChild(svg); 

Tuy nhiên, nó tạo thành phần SVG có chiều rộng bằng không và chiều cao bằng không.

+0

trình duyệt bạn đang làm điều này với? –

Trả lời

55

Hãy thử điều này:

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); 
svg.setAttribute('style', 'border: 1px solid black'); 
svg.setAttribute('width', '600'); 
svg.setAttribute('height', '250'); 
svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink"); 
document.body.appendChild(svg); 
+6

Tuyệt vời - cảm ơn bạn! Có phải tôi, hoặc là SVG thực sự khó tính? – Richard

+1

"svg: svg"? Đồng bằng cũ "svg" cũng sẽ hoạt động tốt. Ngoài ra 'phiên bản' được bỏ qua bởi tất cả các trình duyệt, do đó, nó là một chút lãng phí để thêm vào đó. –

+3

Cảm ơn @ ErikDahlström, đã sửa chữa. Và về svg.setAttributeNS ("http://www.w3.org/2000/xmlns/", "xmlns: xlink", "http://www.w3.org/1999/xlink"); ? Là không gian tên thực sự cần thiết? – TeChn4K

Các vấn đề liên quan