Beiträge von CTS-X

    Abschließende Lösung:

    Code
    function ReplaceTumorDok(){
        var tbl = document.getElementById("ID_tablecontrol0CC90632");
        for (var i = 0; i < tbl.rows.length; i++) {
                var txtNode= tbl.rows[i].cells[1].firstChild.firstChild;
                var eltxt = txtNode.nodeValue;
                eltxt = eltxt.replace('Tumordokumentation - ', '');
                txtNode.nodeValue = eltxt;
        }
    }

                             


    Nun nachdem ich Bücher gewälzt, einige Internetseiten studiert und ein paar mal im Kreis gelaufen bin stehe ich vor einem Problem. Habe mir eine funktionierende replace. Funktion gebastelt:

    Code
    function ReplaceText(){
        var txt = document.getElementById('ID_labelcontrol73E126A9');
        var eltxt = txt.firstChild.nodeValue;
        eltxt = eltxt.replace('Text', 'Test');
        txt.firstChild.nodeValue = eltxt;
    }

    Diese bezieht sich auf ein Textfeld. Was ich nun aber möchte ist in diesem Beispiel

    html-seminar.de/woltlab/attachment/1288/
    im onload in allen Zeilen "Tumordokumentation - " durch ' ' zu ersetzen.


    Sollte es so etwas wie ein Skript für "finde alles auf dieser Seite und ersetze" geben, hilft es mir nicht weiter. Die Überschrift soll ja bleiben.

    Kann man ein Skript basteln welches sich genau auf diese Spalte inkl. aller Zeilen bezieht?


    Sinn der Sache:
    Der wiedergegebene String entspricht Dateinamen. Diese haben den speziellen Suffix 'Tumordokumentation - ' um im System an bestimmten Ecken aufzufallen und schnell wiedergefunden zu werden. Auf einer Ansichtsseite, welche speziell zu diesem Thema läuft, braucht man den Suffix nicht. Die Dokumente wechseln aber und die Nutzer sollen nicht dazu gezwungen werden jedes mal über ein extra Formular nur für diese Seite selber einen Namen ohne Suffix anzugeben.

    Gibt es ein JS oder anderen Trick welches im Onload verhindern könnte, dass automatisch das erste Formularfeld auf der Seite ausgewählt wird? Oder muss man dann was am HTML ändern?


    Der Portal-Manager hier baut das immer ein. Schön und gut wenn man Formulare hat. Aber so springt er auch auf jeder Seite gleich in's erste Suchfeld. Und wenn das wiederum eine Tabelle am Ende der Seite betrifft, ergo auch erst dort eingebaut ist, geht's direkt hinab.

    Das hat nun funktioniert. Zum testen habe ich einfach die bestehende Situation genommen. Waren wirklich nur noch Kleinigkeiten, welche gestört hatten.


    Vielen Dank!

    Wie du mir geraten hattest, deinen Code übernommen:

    Code
    function selectTree(){
    if (document.getElementById("98A8664B1D51B29C9DA98962A2218CD9FD5DC4B0")){
        var oButton = getElement("3EA8EB411D11894A53B692733B5E84E0E704671A").onclick();
        } else {
        var tree = getElement("C3C6FDF7A9109D26EF75AAB6B4612B8205A8F740");
        tree.oUp.selectItem(42);
        var oButton = getElement("D4C7AD31FC9BDDDF7EE24317A886C25701965876").onclick();
        return true;
        }
    }


    Zitat

    wenn du das script von mir genommen hast sucht er in der if abfrage ob es das document mit der id="98A8664B1D51B29C9DA98962A2218CD9FD5DC4B0" gibt. wenn ja ist der wert true . exestiert das document nicht ist der wert gleich false

    Ok dann ist es wohl in diesem Fall eine reine "Gibt es diese Daten überhaupt" Abfrage geworden. Und da es in dem Fall genau so hin kommt hat es gepasst.

    Aber bin mir sicher, dass ich an anderer Stelle eine wirkliche 'true or false' IF Abfrage gebrauchen kann. Würde mich sehr freuen wenn jemand dazu was hat!

    Also erst einmal vielen Dank bis hierhin.


    Wieso kann es getElement allein nicht geben? Die bisher geschriebenen Skripte mit getElement funktionieren tadellos.

    Zudem gibt es auch im jetzigen Skript mehrere getElement. Der Baum und die Buttons werden damit aufgerufen.
    Oder geht es da um etwas ganz anderes und ich steh völlig auf dem Schlauch?


    Zum aktuellen Thema: Es funktioniert! Aber jetzt würde ich gerne wissen wieso. Woher geht denn bei diesem Skript heraus, dass der Wert 'true' gesucht ist? Es wird doch lediglich - IF (ID des Boolean) - kontrolliert.

    Das weiß ich nicht. Wobei der untere ('else') Teil funktioniert, und dort steht auch alles ohne 'document.'
    Das Skript, mit Ausnahme der IF-Bedingung läuft, also mag es daran nicht liegen denke ich.


    EDIT: Das schlaue Buch vor mir (soweit ich es überhaupt verstehe) spricht auch von - document.getElementById - aber wieso an was rütteln das funktioniert :p

    Deinen zweiten Vorschlag verstehe ich leider nicht. Also die Abfrage bezieht sich auf einen Boolean der im Falle einer 'Veröffentlichung' den Wert 'true' wiedergibt.
    Dieser Boolean ist dem Datensatz zugeordnet mit welchem gerade gearbeitet wird.

    Abschließende Lösung:

                                  



    Hallo zusammen!


    Ich bin JS Neuling und arbeite an einem Intranet welches über Intrexx aufgebaut und durch JS, Ajax und Co. ergänzt wird. Das ganze System bestand und wurde übernommen und weiter ausgearbeitet. Was oft Probleme aufbringt, aber leider nicht anders möglich ist.


    Nun stehe ich vor einem Problem: Das System verlangt es leider, dass Dokumente nach dem Einstellen 'veröffentlicht werden'. Was nur so viel bedeutet: Baum aufrufen, auf immer den gleichen Datensatz klicken, speichern. Um den Usern diesen Schritt zu ersparen ist das folgende Skript entstanden.


    Nach dem Anlegen wird versteckt eine Seite geladen welche das ganze durchführt, sehr schnell, nicht sichtbar und zu 100% Erfolg bislang. Der Nutzer sieht nur ein ganz kurzes "Bitte warten"


    Problem: Es gibt die Möglichkeit von bestehenden Dokumenten eine neue Version anzulegen (gleiche Eingabeseite wie bei neuen Datensätzen zwingend erforderlich). Hierbei werden alte Daten übernommen. Ergo: Das JS probiert weiterhin brav das ganze anzuwählen. Es erscheint die Fehlermeldung, dass der Datensatz im Baum bereits vorhanden ist und bleibt stehen. Der Datensatz ist drin, aber der User wird nicht mehr weitergeleitet.


    Um das zum Umgehen habe ich versucht eine IF Bedingung anzulegen. Veröffentlicht oder nicht wird über einen Boolean gespeichert. Diesen wollte ich auslesen lassen und als Bedingung nehmen ob das Skript nun anwählt und speichert oder direkt die Seite ohne Aktion verlässt und danach weiterleitet.

    Alternativ könnte man das Skript für den Seitenaufruf mit einer IF Bedingung belegen. Aber das kommt aufs gleiche Problem raus.


    Die Funktion wird beim onload gestartet. Er erkennt aber leider meine Bedingung nicht und versucht immer brav zu speichern und löst diesen Fehler aus. Wo habe ich in meiner IF Bedingung einen Fehler?


    Und ja bin mir sicher alles geht viel einfacher. Ich stecke als Fachfremder viel Hirnschmalz hinein und pauke Bücher über das Thema. Bislang bleibt es aber noch so "kompliziert".


    Ich würde mich über ein paar Tipps freuen und hoffe ich verstehe das ganze dann nun auch ^^

    Und auch wenn es eine viel bessere Lösung gibt wäre ich sehr dankbar um eine Erläuterung warum das bisherige nicht klappt und wie es gehen könnte. Immerhin möchte man ja noch dazu lernen ;)


    Zum einfacheren Lesen nochmal der Code ohne Kommentare: