2011-10-06 19 views
12

Sistemimiz, AJAX yoluyla programlı olarak HTML'ye SVG dosyalarını yükler. bir dize olarak veya bir değerler bütünü olarak ya -javascript üzerinden özgün bir SVG viewBox edinme

<svg xmlns='http://www.w3.org/2000/svg' viewBox='0,0 65415,41616' xml:space='preserve' height='50.000cm' width='50.000cm' xmlns:xlink='http://www.w3.org/1999/xlink 

Ama garip JavaScript geri SVG DOM bu 'Viewbox' almanın bir yolu var gibi görünüyor: Tipik bir SVG dosyası ile başlar. Mozilla altında, örneğin, firebug, svg düğümünün belirttiğimiz 6 öznitelikten 5 tanesine sahip olduğunu bildirir: xmlns, xml: boşluk, yükseklik, genişlik ve xmlns: xlink. Ancak bu listeden ViewBox eksiktir.

Bu değeri programsal olarak almak için zaten var mı? - SVG DOM'de nerede? (3. parti kütüphaneleri sunamıyoruz).

+0

Bu soruyu aldım ve cevap benim için çok kullanışlıdır. Neden kapatıldığı hakkında detayların olması güzel olurdu. –

+0

aynı burada ... yeniden açılmaya oy ver. –

cevap

35
  1. Git Açık web tarayıcısı konsol kodu
  2. Tür:

    ["-350", "-250", "700", "500"] 
    
  3. Alternatif
  4. , yazın:

    var svg = document.querySelector('svg'); 
    var box = svg.getAttribute('viewBox'); 
    box.split(/\s+|,/); 
    
  5. şanlı tepkisini gözlemleyin Kod:

    var box = svg.viewBox.baseVal; 
    [ box.x, box.y, box.width, box.height ] 
    
  6. şanlı tepkisini gözlemleyin:

    [ -350, -250, 700, 500 ] 
    

Başka bir deyişle: evet, bir explicit ECMASCript binding yanı sıra standard DOM 2 attribute olarak DOM Viewbox, hem alabilirsiniz.

+1

Orijinal olarak denediğim şey budur. Bu yüzden tekrar denedim ama var box = svg.getAttribute ('viewBox'); svg öğesi açıkça hata ayıklayıcısında doğru düğüm olsa bile, bana 'undefined' verir. 'Height' gibi diğer özellikler bu şekilde alınabilir, ancak 'viewBox' değil. Onun sadece düz tuhaf. –

+0

Diğer bir yaklaşım olan svg.viewBox.baseVal, bana '0,0,0,0' kutusunu getiriyor. Sorunlarım, Ajax –

+0

üzerinden SVG yüklemesi ile ilgili olabilir. Aynı sorunu yaşıyorum, Ajax içermiyor. –

İlgili konular