IE Probleme mit Javascript funktioniert erst bei Reload vom Browser

mrno

Erfahrenes Mitglied
Hi zusammen,
ich habe mal wieder ein Problem mit meinem Code. Er sieht folgendermaßen aus:
index.html
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type="text/javascript" src="ttt/include.js"></script>
<script type="text/javascript">
 include.init();
 window.onload=function(){
  hallo();
 }
</script>
</head>
<body>
</body>
</html>
ttt/include.js:
Code:
var include=new Include();
function Include(){
  this.js=function(src){
    alert(src);
    var js = document.createElement("script");
    var type=document.createAttribute("type");
    type.nodeValue="text/javascript";
    js.setAttributeNode(type);
    var srcAttr=document.createAttribute("src");
    srcAttr.nodeValue=src;
    js.setAttributeNode(srcAttr);
    document.getElementsByTagName("head").item(0).appendChild(js);
  }
  this.init=function(){
   include.js("ttt/base/listener/onloadlistener.js");
  }
}
ttt/base/listener/onloadlistener.js
Code:
function hallo(){
 alert("ahllo");
}

Im firefox wird mit die Meldung ahllo sofort ausgegeben. Wenn ich es im IE 6 teste, gibt er mir das ahllo erst nach einem Reload aus. Hat einer eine Ahnung warum? Was kann ich ändern das es Funktioniert. Ich denke es kann daran liegen das er beim Reload die lib schon geladen hat. Aber dann müsste er doch einen Fehler beim ersten mal bringen oder?
 
Hi,

ich gehe mal davon aus, dass der IE Probleme mit createAttribute und setAttributeNode hat. Versuch stattdessen das Scriptelement für den IE über die Methode createElement bereits komplett anzulegen.
Code:
var include=new Include();
function Include(){
  this.js=function(src){
    alert(src);
    if(document.all && !window.opera){
    	var js = document.createElement("<script src=\""+src+"\" type=\"text/javascript\"></script>");
    }else{
	    var js = document.createElement("script");
	    var type=document.createAttribute("type");
	    type.nodeValue="text/javascript";
	    js.setAttributeNode(type);
	    var srcAttr=document.createAttribute("src");
	    srcAttr.nodeValue=src;
	    js.setAttributeNode(srcAttr);
    }
    document.getElementsByTagName("head").item(0).appendChild(js);
  }
  this.init=function(){
   include.js("ttt/base/listener/onloadlistener.js");
  }
}
Ciao
Quaese
 

Neue Beiträge

Zurück