Hi,
Javascript ist so um 2003 in eine neue Phase getreten.
Schon seit ca. 2000 wurden "Komponenten" verwendet. Also ein schönes openSource Menü Widget. Oder ein Tree-Widget. etc.
In real existierenden Notes Anwendungen gibts oft noch alte Widget.
Und wenn man in diese Anwendungen mit dem neuen Besteck, also sauberer programmierte Widgets der neuen Phase, hereingeht, dann können sich ältere Widgets zu Bug-Granatwerfern entwickeln.
Z.B. haben die damals einfach html-Elemente nicht sauber in den DOM-Tree gehängt, sondern brutal mit document.write() über das Dokument drübergebügelt. Und genau diese Dinger führen dann in neueren Widgets zu den erstaunlichsten Problemen, meilenweit entfernt vom Ursprung.
Eigentlich muss man diese alten Widgets ersetzen. Die Problemspots finden, das Teil reverse-re-ingenören ist schwierig, weil die Dinger eine ziemliche Komplexität haben. Die Entwickler der neuen Widgets berücksichtigen - aus vernünftigen Gründen - gar nicht die Interoperabilität mit diesen alten Widgets. Erstmal die Ursachen für die Problemspots zu finden ist noch schwieriger, weil ein reverse engineering der neuen Widgets ein noch höheres Maß an Verständnis für das innere Wirken eines Webbrowsers erfordern. Das kann man nicht mal so eben in self-html nachschlagen.
Die Phasierung von Javascript ist natürlich problematisch. Ist ja nicht so, dass plötzlich 2003 alles "sauber" programmiert wurde. Vielleicht gibts Entwicklungspraktiken, die erst 2005 auf den Müllhaufen der Entwicklung-fürs-Web Geschichte geworfen wurden.
Aber das ist Fortschritt von komplexen Systemen. No easy way out.