innerHTML im IE dynamisch einem Div zuweisen
Andre
- javascript
Hallo!
Ich programmiere gerade eine Suche, die ähnlich Google Suggest ist.
Ich sende die Daten an den Server und erhalte die Antwort als XML zurück.
Das Parsen funktioniert im IE und Firefox schon gut.
Alledings bekomme ich das Div im IE nicht eingefügt, bzw ich kann die Daten nicht in das innerHTML des div schreiben.
Problem: Der IE findet das DIV nicht mehr (vermute ich mal), denn wenn ich mit document.getElementById('mydiv') mir das DIV holen will, sagt er immer dass "document.getElementById('mydiv') ist Null oder Kein Objekt"
Im FireFox funktioniert es wie schon erwähnt.
Womit kommt der IE nicht klar und wie kann ich das umgehen?
Hier ein Teil meines Codes:
Mit der Funktion createDiv() wird das Div erzeugt
function createDiv(eingabe)
{
//Position des Eigabeelementes
//Bei y + 20, weil Höhe des Inputs beträgt 20
var position;
position=getPosition(eingabe);
var positionY = position.y+20;
var positionX = position.x;
//Arbeitsbereich
arbeitsbereich = document.getElementsByTagName("body")[0];
//Erzeugen des Div
var myDiv=null;
myDiv = document.createElement("div");
if(window.ActiveXObject)
{
myDiv.id = "myDiv";
myDiv.style.width = widthDiv;
//myDiv.style.min-width = min_widthDiv;
//myDiv.style.background-color = backgroundDiv;
myDiv.style.border = borderDiv+'px solid '+bordercolorDiv;
myDiv.style.position = 'absolute';
myDiv.style.top = positionY+"px";
myDiv.style.left = positionX+"px";
}
else if(window.XMLHttpRequest)
{
var divId = null;
divId = document.createAttribute("id");
arbeitsbereich.appendChild(myDiv);
divId.nodeValue="myDiv";
var divStyle = document.createAttribute("style");
divStyle.nodeValue="width:"+widthDiv+"; min-width:"+min_widthDiv+"; background-color:"+backgroundDiv+"; border:"+borderDiv+"px solid "+bordercolorDiv+";position:absolute;top:"+positionY+"px;left:"+positionX+"px;";
myDiv.setAttributeNode(divId);
myDiv.setAttributeNode(divStyle);
}
}
In der Funktion Daten kommt dann folgender Code vor:
if(window.ActiveXObject) //IE
{
document.getElementById('myDiv').innerHTML = ausgabe;
}
else if(window.XMLHttpRequest)//Firefox und andere
{
document.getElementById('myDiv').innerHTML = ausgabe;
}
Habt ihr eine Lösung, ich bin schon stundenlang am Probieren
hallo,
in der abfrage "if(window.ActiveXObject){...div für ie erzeugen}" fehlt meiner ansicht nach das appendChild; wieso ist an dieser stelle überhaupt eine browserweiche, diese funktionen (appendChild etc.) sollten doch browserübergreifend funktionieren?
grüße basti
hallo,
in der abfrage "if(window.ActiveXObject){...div für ie erzeugen}" fehlt meiner ansicht nach das appendChild; wieso ist an dieser stelle überhaupt eine browserweiche, diese funktionen (appendChild etc.) sollten doch browserübergreifend funktionieren?
grüße basti
hi basti,
ich bin noch ein blutiger Anfäger was das betrifft.
Das war wirklich das appendChild, danke.
Irgendwie wusste ich, dass es was ganz einfaches ist.
Vielen Dank
Gruß André