JS dynamisch & periodisch laden (Mac, IE 5.17)

Neurodeamon

Erfahrenes Mitglied
Mit dieser Funktion lade ich im Normalfall Javascript nach. Ich rufe damit z. B. eine Datei auf in der sich dynamisch generiertes Javascript befindet. Momentan schreibe ich für ein Intranet ein System das in regelmäßigen Abständen

Javascript:
function includeScript(url) {
    skript=document.createElement('SCRIPT');
    skript.setAttribute('src',url+'?'+new Date().getTime());
    document.getElementsByTagName('BODY')[0].appendChild(skript);
}

Hiermit rufe ich periodisch die Funktion auf
Javascript:
var newmail = window.setInterval("includeScript('bla/script.js')",10000);

Leider habe ich bei dem IE 5.17 für den Mac keine Debugfunktion und ich weiß nicht wo es hakt und welche JS-Methode funktionieren würde. Jedenfalls findet keine periodische Überprüfung statt (zumindest nicht sichtbar, wie ich es von allen anderen Browsern kenne).

Ich glaube kaum das jemand einen konkreten Hinweis hat, wer arbeitet heutzutage schon mit dem IE 5.17 und dem OS 9 :-)
Mir bleibt jedoch keine Wahl, weil ich es für ein bestehendes Firmennetzwerk umsetzen muß, und es wird leider nicht in neue Systeme mit angenehmem Firefox oder Safari investiert :-X.
 
Das ist nicht nur im Mac-IE so, Konqueror konnte das auch nicht, als ich das vor einiger Zeit probiert habe.

Ich bin jetzt nicht sicher, ob der Mac-IE XMLHttpRequest kennt...falls ja, lädtst du das Skript halt mit XMLHttpRequest, und lässt es per eval() ausführen.
...falls nicht, könntest du das Skript, in ein HTML eingebettet, in ein verstecktes iFrame laden und von da aus den Check vornehmen....

Ich weiss, ist nicht besonders schick, aber was anderes fällt mir da leider nicht ein.
 
Hast du schon mal versucht, das Skript nur einmal einzubinden und dann dieses durch Verändern des Query-Teils neu zu laden?
 
Upgrade:
Das window.setInterval funktioniert, es wird tatsächlich nur nicht angezeigt das ein Teil nachgeladen wird.
P.S.: Der IE 5.17 Debugger läßt sich über Bearbeiten/Optionen/Webinhalt/Hinweis bei Fehlern aktivieren!

Der Fehler liegt definitiv in diesen Methoden, welche scheinbar nur bei neueren Browsern funktionieren:
Javascript:
createElement()
setAttribute()
getElementsByTagName()
appendChild()

@Sven:
Danke für den Tipp, aber XMLHttpRequest ist noch weniger verfügbar als die von mir angegebenen Methoden ;-). Der Browser ist schließlich aus dem Jahr 2001 (!)

@Gumbo:
Hast du schon mal versucht, das Skript nur einmal einzubinden und dann dieses durch Verändern des Query-Teils neu zu laden?
Wie meinst Du das? Das Script wird nur einmal eingebunden.
Nur einige Variablen werden generiert und in die Datei geschrieben. Diese Ergebnisse müssen zyklisch neu geladen werden.


Hab' ich schon erwähnt, das der IE für den Mac »a pain in the ass« ist? Schlimmer noch als der IE für Windows :-)

Das einzige was an dem IE toll war -> viel bessere CSS-Unterstützung als beim Win IE
 
Neurodeamon hat gesagt.:
@Sven:
Danke für den Tipp, aber XMLHttpRequest ist noch weniger verfügbar als die von mir angegebenen Methoden ;-). Der Browser ist schließlich aus dem Jahr 2001 (!)

Naja...der WIN-IE kann das seit Version5, und die gibts seit 1999.
Aber ich denke mal, das fällt trotzdem weg, oder gibts beim Mac ActiveX?

Was Gumbo wohl meinte: ein script-Element normal in der Seite auszugeben, und in Intervallen dessen src zu ändern.
Hatte ich dereinst auch mal probiert...ich glaube mich zu entsinnen, dass dies nur der (WIN)-IE konnte, andere Browser mussten passen.
 
Sven Mintel hat gesagt.:
Naja...der WIN-IE kann das seit Version5, und die gibts seit 1999.
Aber ich denke mal, das fällt trotzdem weg, oder gibts beim Mac ActiveX?
Ähm.. ActiveX auf OS 9? näh! :-)
Mit 2001, wollte ich nicht sagen das die Technologie nicht da war, sondern das sie wohl nicht sehr verbreitet war. Und der IE für den Mac ist praktisch nicht mit dem Windows IE vergleichbar.

Was Gumbo wohl meinte: ein script-Element normal in der Seite auszugeben, und in Intervallen dessen src zu ändern.
Hatte ich dereinst auch mal probiert...ich glaube mich zu entsinnen, dass dies nur der (WIN)-IE konnte, andere Browser mussten passen.
Ich kann nicht ganz folgen, oder? Das tue ich doch schon, also den Quelltext zu ändern und diesen neu einzlesen. Das ist doch genau das was gerade nicht funktioniert beim Mac IE.
Oder verstehe ich gerade etwas falsch?
 
Du notierst ganz einfach ein script-Element mit ohne Quellenangabe:
HTML:
<script type="text/javascript" id="foobar></script>
Nun kannst du ganz einfach die Quelle dieses Skriptes immer wieder verändern:
Code:
function includeScript(url) {
	return document.getElementById("foobar").src = url + "?" + new Date().getTime());
}

Nachtrag: Ich merke gerade, dass für das script-Element zwar gar kein id-Attribut definiert ist, aber vielleicht klappt es ja doch.
 
Gumbo hat gesagt.:
Nachtrag: Ich merke gerade, dass für das script-Element zwar gar kein id-Attribut definiert ist, aber vielleicht klappt es ja doch.

Naja..ID ist ein Universalattribut...das kann man jedem Element verabreichen.
Ich befürchte nur, es wird trotzdem nicht gehen...das Problem ist nicht, dass das src-Attribute nicht geändert wird, sondern dass die neue src nicht geladen wird :(

Es wird wohl auf das iFrame hinauslaufen...ich hoffe, der Mac-IE kennt wenigstens sowas :-)
 
Sven Mintel hat gesagt.:
Naja..ID ist ein Universalattribute...das kann man jedem Element verabreichen.
Es ist zwar ein Universalattribut, kann aber (theoretisch) nicht jedem Element zugewiesen werden. Denn laut Spezifikation existiert es für alle HTML-Elemente außer BASE, HEAD, HTML, META, SCRIPT, STYLE und TITLE.
 
Ist ja nen Ding :eek:
Das war mir bisher nicht bekannt.

Naja...man könnte immer noch mit getElementsByTagName() drauf zugreifen...aber wie gesagt, ich glaub nicht, dass es an der Zuweisung liegt... der weigert sich einfach, die src neu zu Laden.
 

Neue Beiträge

Zurück