[JavaScript] JS, DOM, AJAX - Border im IE nicht angezeigt.

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Telefonzelle, 18. August 2007 .

  1. 18. August 2007
    JS, DOM, AJAX - Border im IE nicht angezeigt.

    Hi.
    Ich probier derzeitig n bisschen mit DOM AJAX und dem Kram rum, und folgende "Seite" ist dabei rausgesprungen:

    XML Parsing

    Im Firefox werden die Border korrekt angezeigt, im Internet Explorer jedoch gar nicht.
    Code:
    [FONT=monospace]
    [/FONT]Divs['header'].setAttribute('style','margin-left:auto;margin-right:auto;border:1px solid #000000;margin-bottom:10px;text-align:left;width:300px;');
    Wenn jemand weiß warum... ich weiß es nicht.
    Bzw wie kann ich das verhindern?

    MfG.


    Falls jemand zu faul ist auf den Link zu klicken, hier die Sources:

    index.html
    Spoiler
    Code:
    <html>
     <head>
     <title>My XML Parsing</title>
     <script type="text/javascript" language="javascript">
     function newAjax() {
     c = null;
     try {
     c = new XMLHttpRequest();
     } catch (Error) {
     try {
     c = new ActiveXObject("MSXML2.XMLHTTP");
     } catch (Error) {
     try {
     c = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (Error) {
     alert("Unable to create XMLHttpRequest Object. Aborting.");
     }
     }
     }
     return c;
     }
     function get(c,url,callback) {
     c.open('get',url);
     eval("c.onreadystatechange = "+callback);
     c.send(null);
     }
     function parsexml() {
     if(c.readyState == 4) {
     xml = c.responseXML;
     content = document.getElementById('div_content');
     texte = xml.getElementsByTagName('text');
     textCount = xml.firstChild.firstChild.childNodes.length;
     thisData = new Array();
     for(i=0;i<textCount;i++) {
     thisData['text'] = xml.firstChild.firstChild.childNodes[i].firstChild.nodeValue;
     thisData['div'] = xml.firstChild.firstChild.childNodes[i].getAttribute('div');
     document.getElementById(thisData.div).innerHTML = thisData.text;
     }
     }
     }
     function loadXML() {
     x = newAjax();
     get(x,'data.xml','parsexml'); 
     }
     window.onload = function() {
     Divs = new Array();
     Texte = new Array();
     document.body.style.textAlign = 'center';
     
     Texte['head'] = document.createTextNode('Head');
     Texte['content'] = document.createTextNode("Content");
     
     
     Divs['root'] = document.createElement('div');
     Divs['root'].setAttribute('style','text-align:center');
     
     Divs['header'] = document.createElement('div');
     Divs['header'].setAttribute('style','margin-left:auto;margin-right:auto;border:1px solid #000000;margin-bottom:10px;text-align:left;width:300px;');
     Divs['header'].setAttribute('id','div_head');
     
     Divs['content'] = document.createElement('div');
     Divs['content'].setAttribute('style','margin-left:auto;border:1px solid #000000;margin-right:auto;text-align:left;width:300px');
     Divs['content'].setAttribute('id','div_content');
     
     Divs['content'].appendChild(Texte['content']);
     Divs['header'].appendChild(Texte['head']);
     
     Divs['root'].appendChild(Divs['header']);
     Divs['root'].appendChild(Divs['content']);
     Divs['content'].appendChild(document.createElement('br'));
     document.body.appendChild(Divs['root']);
     loadXML();
     }
     </script>
     </head>
     <body>
     </body>
    </html>
    

    data.xml
    Spoiler
    Code:
    <xml><texte><text div="div_head">Welcome to my page</text><text div="div_content">Oh my god. this comes directly out of "data.xml" dude.</text></texte></xml>
    

    PS:
    Allgemeine Verbesserungsvorschläge für den Code sind natürlich auch gerne gesehen. Hab mir vor kurzem 'n Buch - AJAX mit PHP - gekauft und probier halt jetzt n bisschen rum..
     
  2. 18. August 2007
    AW: JS, DOM, AJAX - Border im IE nicht angezeigt.

    versuch's lieber über element.style.border - setAttribute ist recht buggy im IE und sehr unzuverlässig.

    alternativ geht Document Object Model CSS
    Code:
    elem.style.cssText = "border: 1px solid black; background-color: #ff0000;"
    
     
  3. 18. August 2007
    AW: JS, DOM, AJAX - Border im IE nicht angezeigt.

    Werd's nacher mal ausprobieren.
    Hab mich gestern noch gefragt:

    Code:
     eval("c.onreadystatechange = "+callback);
    
    Kann man das auch "einfacher" machen? Ohne eval()?
    In "callback" wird der Name der Funktion, welche aufgerufen werden soll, übergeben.

    MfG.
     
  4. 18. August 2007
    AW: JS, DOM, AJAX - Border im IE nicht angezeigt.

    nein, geht nicht anders
    das ist ne referenz und muss eigentlich normal angegeben werden
    d.h. da kann nicht einfach ein string hin
    durch eval wird das halt ein bisschen umgangen
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.