Es kann ja mal passieren, das man im Sharepoint die onload - Methode überschreibt :-(
MOSS Sharepoint
Warum sollte man dies tun? Klar, das ist die erste Frage die man sich stellen sollte....
Es ist eigentlich nicht von Vorteil diese Methode zu überschreiben, denn man weiß ja nie wer es noch versucht....
Aber dafür gibt es ja auch die Methode mit welcher man Funktionen in ein Array reinhängen kann. Diese werden dann vom Sharepoint nacheinander abgearbeitet oder ...
Kategorie Warum sollte man dies tun? Klar, das ist die erste Frage die man sich stellen sollte....
Es ist eigentlich nicht von Vorteil diese Methode zu überschreiben, denn man weiß ja nie wer es noch versucht....
Aber dafür gibt es ja auch die Methode mit welcher man Funktionen in ein Array reinhängen kann. Diese werden dann vom Sharepoint nacheinander abgearbeitet oder ...
Den wenn man dann versucht in einer Liste auf das Edit-Sheet umzuschalten, geht nix mehr.
Schuld daran ist folgendes Stück "MS"-Code, welches in die Seite gerendert wird ->
So und was machen wir jetzt?
Ist ein Edit-Sheet in der Seite vorhanden, dann ist die JavaScript Variable bGridViewPresent vorhanden, hiermit hat man zumindest die Möglichkeit zu prüfen, ob eines vorhanden ist.
Jetzt mache ich folgendes:
function checkIfEditSheet() {
if (document.readyState == "complete") {
if ( typeof (bGridViewPresent) != 'undefined') {
if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper()
}
} else {
setTimeout('checkIfEditSheet()',500);
}
}
setTimeout('checkIfEditSheet()',500);
Ich definiere mir eine Funktion checkIfEditSheet, welche prüft, ob mein Dokument fertig geladen ist, wenn dann rufe ich die OnLoadMethode vom Sharepoint auf.
(Könnte ja sein, dass sich noch andere dieser Mechanik bedienen )
Wenn nicht, dann setze ich einen neuen Timeout.
Wahlweise kann das in JS-Datei ausgelagert werden, oder man schreibt es direkt in die Master-Page.
Gruß JJR