Jump to content
php.lv forumi

kroko

Reģistrētie lietotāji
  • Posts

    1
  • Joined

  • Last visited

Posts posted by kroko

  1. Labsvakars.

    Pēdējo stundu laikā izlasīju čupu materiālu, un tagad viss ir vienā ķīselī. Serverpuses, klientpuses, headerkontettaipi utt.

    Uz servera atrodas SVG fails. SVG=XML. Pašlaik čakarējos ar tajā pašā wiki linkā doto W3C's SVG logo (nepārprast, fails ir fiziski uz "mana" servera, t.i., uz tā kur atrodas tālāk jautājumā ietvertais svgchakaretajs.html, viss notiek viena domēna ietvaros).

     

    Vai ir iespējams klienta! pusē caur javascript nolasīt SVG saturu, izmainīt to, un klientam prezentēt izmainīto SVG?

    Nav vajadzīgs (un nav arī pieejams) ActiveXObject un tātad arī, piem., Document.save(objTarget), metode (jāstrādā ir tikai uz webkita bāzētajiem pārlūkiem)

     

    Tātad, ja oriģinālais SVG ir šāds

    SVG-logo.svg

    <svg xmlns="http://www.w3.org/2000/svg"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        width="100%" 
        height="100%"
        viewBox="0 0 300 300">
        ..........
        ..........
        ..........
    </svg>
    

    tad vēlos iegūt

    <svg xmlns="http://www.w3.org/2000/svg"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        width="100%" 
        height="100%"
        viewBox="0 0 300 300"
        atrībūtanosaukums="atribūtavērtība">
        ..........
        ..........
        ..........
    </svg>
    

     

    Pašlaik ir šādi

     

    <script type="text/javascript">
    // Variabļi
    var xmlhttp;
    var xmlDoc;
    
    // Funkcija lai ielasītu SVG (t.i., XML)
    function loadSVGXML(path) {
    if (window.XMLHttpRequest) {
    	xmlhttp=new XMLHttpRequest();
    	xmlhttp.open("GET",path,false);
    	xmlhttp.send();
    	// XML DOM OBJECT
    	xmlDoc=xmlhttp.responseXML;
    }
    else {
    	alert("oops");
    }
    }
    
    // Funkcija, kas rootnodei pievieno atribūtu
    function setAttrInRootNode() {
    
    var rootNode= xmlDoc.documentElement;
    xmlDoc.documentElement.setAttribute('myAttrName', 'myAttrValue');
    }
    
    // Tests
    function testIfset() {
    rootNode= xmlDoc.documentElement;
    document.write("Last attribute name: " + rootNode.attributes[rootNode.attributes.length-1].name + "<br />");
    document.write("Last attribute value: " + rootNode.attributes[rootNode.attributes.length-1].nodeValue + "<br />");
    }
    
    loadSVGXML("SVG-logo.svg");
    setAttrInRootNode();
    //testIfset();
    </script>
    

     

    Ja iespējoj testIfset, redzams, ka xmlDoc objekts ir izmainīts. Vai tehnoloģija atļauj šo objektu tagad, vienārši sakot, pārvērst "tīrā" XML (kā piemērs kalpo- atvērt augstāk nolinkoto "W3C's SVG logo" un atvērt view source pārlūkprogrammā) un servēt klientam kā SVG (tātad content-type: image/svg+xml)?

    Pieņemu, ka, piem., ar php un SimpleXML varētu viens divi, bet tieši javascript ir jautājums. Serveris ir "tikai", lai "padotu" failu.

    Liels paldies.

    kroko

×
×
  • Create New...