Beiträge von CTS-X

    Es ist ein Intranet, nicht einzusehen. Habe meine Beiträge entfernt, inzwischen ist der Plan A, B, C und viele weitere verworfen. Nenne es nun DynP01


    Neues Skript, neuer Plan: Jede Zeile verfügt über eine Schaltfläche die genau tut was sie soll: Modal mit richtigem Inhalt den Datensatz öffnen.


    Um die ID dynamisch zu ermitteln habe ich dieses Skript gebaut. wie man sieht noch mit Lücke. Ich bekomme zuverlässig beim Klick auf die Zeile eine ID heraus, welche genau der ID des Buttons in der jeweiligen Zeile entspricht. Bspw. ID_imageactioncontrol735BC564_4_IMG für Zeile 4.


    Nur: Wie bekomme ich es hin, genau diese ermittelte ID (ist ja nur Text innerhalb einer Variable bis hierhin) am Ende des Skriptes als ID zu nutzen?

    Bräuchte eine Hilfe zu einem Skript, dass ich hier gelernt habe. Danke nochmal an Sempervivum hierzu.

    Altes Thema: [ERLEDIGT] replace. innerhalb mehrerer Tabellenzeilen


    Es geht um den Ersatz des Syntax durch "".


    Mein Skript:


    Code
    function replaceSyntax(){
        var tbl = document.getElementById("ID_tablecontrol0FD1C5CD");
        for (var i = 3; i < tbl.rows.length; i++) {
                var txtNode= tbl.rows[i].cells[1].firstChild.firstChild.lastChild;
                var eltxt = txtNode.nodeValue;
                eltxt = eltxt.replace(/\.[^/.]+$/, "")
                txtNode.nodeValue = eltxt;
        }
    }

    Edit: i = 3 damit die Überschriften nicht miteingezogen werden (?)


    Der Aufbau im Anhang.


    Ich schein in der falschen Child Ebene zu sein. Denn er beschwert sich:
    "Die Eigenschaft "replace" eines undefinierten oder Nullverweises kann nicht abgerufen werden."


    Habe mich wild durchprobiert, viel gelesen, wieder probiert. Auch nach der Erklärung von Sempervivum, dass Span eine tiefere Child-Ebene ist hab ich beachtet. Aber ich treffe es nicht.

    hast du mal ein link zu dein modal script? oder hast du dir selbst eins geschrieben?

    Verstehe ehrlich gesagt nicht was du meinst.

    also in meinem Beitrag oben sieht man die 1. Tabellenspalte. Die ist so eingestellt, dass sie Modal aufruft. Rauskommen tut das.. (Anhang)


    Durch class = TTModal ist die Art des Tooltips bestimmt.
    Wie mal erwähnt, muss ich nicht alles selber schreiben. Es bleibt viel Arbeit am Portal Manager. Dementsprechend musste ich auch nie ein JS für modales öffnen anlegen sondern wählte es bequem aus. Nur brauch ich dieses mal ein manuelles Ansprechen.

    Ist denke, dass er die alten im Cache behält ist normal so. Ist bei mir bei Chrome oder IE auf der Arbeit nicht anders. Aber neustarten muss ich nicht. Es reicht ein Reload der Seite.


    Einmal F5, max zur Startseite wechseln und dort reload (nur beim IE), dann ist es wie's sein soll.

    hast du den schon ein modal script? dann poste den mal dann baue ich das irgendwie zusammen . Wenn du noch keine modal hast dann suche ich mir was zurecht .. aber wasmeinst du das das script erst aktiv wird nach den ersten klick?? das script soll doch beim klicken ein link öffnen .das ist doch richtig.. oder meinst du das die zeile erst dann nacch den ersten klick die farbe ändert bzw das die maus zum pointer wird ,oder wie soll ich das verstehen

    Nein also. Beim klicken passiert gar nichts. Erst wenn ich einmal einen der Links in der 1. Spalte anklicke, das modal öffnen lasse und wieder schließe, dann greift ab nun das Skript bei jedem Klick auf die Zeile. Leider dann aber nicht modal, weil selbst gebaut.


    Code
    guid="BC1DD7799C50710248A8711954A1C100C5C6482C" name="textvcontrol4F514A3E" binding="datafield" closable="false" dynamic-width="false" encode="true" filter-script="true" hidden="false" jump-to-child="false" lengthlimit="-1" link="true" link-datafield="FD4B3D8DE44A9B0D2AF1F9266836E97D165E46EF" link-target="E1023870EA70BC4650C1112A97D43FAA8E3D8BFF" link-targetapp="7F613973A40ABFE26BCDC044403526228471668A" linktype="0" modal="true" moremarker="..." mouseover-tooltippopup="false" rect="0,0,100,20" sendemail="false" show-empty-string="true" showtitle="false" text-if-no-perm="false" tooltippopup="true">

    Das ist der Code zur ersten Tabellenspalte. Man sieht tooltippopup=true und modal=true

    Mehr kann ich dir leider auch nicht sagen.


    Hier eine super Diskussion zu modal:
    https://stackoverflow.com/ques…-of-new-tab-or-new-window

    daher hatte ich auch das .on([...] vorhin. Leider weiß ich noch nicht mit umzugehen.

    Code
    $(document).on("click", ".open-modal", function () {

    Wenn ich das bei mir einfüge juckt es ihn so ziemlich gar nicht.

    Mein Erklärung ist auch einfach nicht der Bringer...

    ja das war gemeint. Ist schon mal der 1. Schritt. Hatte das zwar bedacht aber falsch geschrieben.


    Jetzt geht es um denk Link. Habe es geschafft den Link wie in der 1. Spalte angegeben einzubauen.
    Sieht nun so aus:

    Code
    $("#ID_tablecontrolE1253671 tr").css("cursor","pointer");
          $("#ID_tablecontrolE1253671 tr").click(function(){
                location.href = $(this).find('td a').attr('href');
                open(link);
          });

    Probleme:
    1. Skript wird erst aktiv nachdem ein Link erstmal manuell aufgerufen und geschlossen wurde.

    Könnte man zur Not mit einem Onload erledigen welches diese Aktion mit einem versteckten Fenster bei Aufruf aufführt. Aber denke irgendwas ist einfach falsch im Skript. Wäre mir lieber als Funktionen die dann doch wieder Ärger machen.


    2. Angelegt ist es ursprünglich, dass Links modal geöffnet werden. Das Skript öffnet den Link jedoch direkt im Fenster.

    Ich weiß, dass Modal ein Begriff ist den das Skript kennen sollte, aber ich weiß nicht wo im SKript ich nun etwas wie ".modal" oder ".open-modal" unterbringen sollte.


    Gefunden aber leider nicht funktional, oder ich setze es falsch ein:

    Anstatt .click(function):


    Code
    $(document).on("click", ".open-modal", function () {

    Ja hast du richtig verstanden, danke. Auf der Seite die ich verlinkt habe sieht man es auch unten schön. Eine Tabelle in der automatisch ein Link der in dieser Zeile vorhanden ist komplett die ganze Linie durchzieht.


    Edit: Also einbinden kann ich es zwar, aber dann hab ich zwei Probleme:

    1. Das Skript reagiert bei allen Clicks mit Pointer auf dieser Seite

    2. Wie binde ich den eigentlich Link ein?


    Also jetzt versucht er einen nicht vorhanden Link zu öffnen, im Skript ist ja auch keiner, klar. Wie schreib ich es, dass er beim Klick sich verhält als würde er den Link in der 1. Spalte anklicken? Dieser ruft eine Seite modal auf. Variabler Inhalt je nach Datensatz der Zeile.


    Mein "Versuch". Nach blättern im schlauen Buch mit wenig (keiner) Ahnung meinerseits

    Code
    $('#tablecontrolE1253671').click(function(){
                var link = $('#textvcontrol4F514A3E').attr("href");
                open(link)
          });

    tablecontrol ist die Tabelle um die es geht
    textvcontrol das Element in der ersten Spalte in welchem der Link ist


    Stimmt so nicht, aber mein Wissen reicht noch nicht aus für mehr.

    Hallo!


    Über das hier bestehende Portal-Programm habe ich eine Tabelle aufgebaut und CSS mäßig bearbeitet und bin noch dabei. Bspw. wird Spalte eins in der Schrift und Hover Reaktion noch anders. Pointer als Maus usw. Also ziemlich gut gelaufen und bis hierhin in Ordnung.

    Ergebnis im Anhang.


    Aber:

    Das Programm sieht es vor bestimmte Spalten zu definieren welche als Link fungieren. Nun Wollte ich aber, deswegen auch der Pointer, die ganze Tabellenzeile anklickbar machen. Nach kurzem googlen gibt es einige Lösungen. Nun ist es aber in meinem Fall nicht so einfach das HTML der Tabelle anzutasten. Einfacher wäre ein zusätzliches JS, welches den Job erledigt.

    Code
    JS
    $("tr[link]").css("cursor","pointer");
          $("tr[link]").bind("click", function(){
                var link = $(this).attr("link");
    window.location.href = link;
          });  
    
    
    HTML
    <tr link="/product.php?ver_id={$value.ver_id}" ......>

    Bsp. das ^ habe ich gefunden.

    Ohne groß zu erklären was und wieso an dem Programm hier mich einschränkt, die Frage:
    Wenn meine Tabelle nun schon besteht und auch der Hover funktioniert, was muss ich nun als JS angeben um letztendlich nur noch den Link aus Spalte 1 über die ganze Breite der Tabelle zu ziehen.


    Hoffe man versteht irgendwie was ich meine.


    Musste mich an euch wenden, da das Portal-eigene Forum wie so oft nicht hilfsbereit ist und alles ignoriert. Kann gut sein, dass ich an das Ergebnis nicht komme da das Portal mich zu stark einschränkt.


    Links zu dem was ich gefunden hatte:
    http://www.tiptom.ch/homepage/bsp/zellelink.html#js
    http://www.tiptom.ch/homepage/faq.html?q=zellelink

    ich habe da mal ein schönheits fehler und weiss nicht ob man das überhaupt beheben kann.


    problem ist . wenn man über das menü geht wird es zur seite rausgeschoben. wenn man dann mit der maus links neben den raus geschobenen link geht ,dann wackelt das ganz schnell hin und her. der kasten wird mit transform:translate(40px, 0px); verschoben,was meiner meinung nach vieleicht den fehler auslösen tut. wenn sich das menü nicht verschiebt ist es ja nicht so. wieleicht gibt es da ja nee andere möglichkeit wo der fehler nicht auf tretten tut https://jsfiddle.net/basti1012/e39La3Lt/6/

    Kann dir nicht helfen. Aber möchte mal für andere was in den Raum werfen, was meine Idee hier wäre: Ein "unsichtbares" Kästchen welches über dieser entstehenden Lücke schwebt. Habe das Problem selbst bei einem Dropdown Menü bei welchem ich diagonale Mausbewegungen (wie Standard) möglich machen wollte. Und da ist meistens der Hinweis im Internet es mit unsichtbaren Kästen zu versuchen.


    Sehe auch bei dir geht das nicht. Gemeint ist diagonal vom Über- zum Unterpunkt zu fahren.


    Hier die Ergebnisse:

    unter dem Punkt Widening CSS Boundaries

    https://css-tricks.com/dropdow…ing-mouse-movement-paths/


    http://bjk5.com/post/446985591…own-amazons-mega-dropdown


    https://stackoverflow.com/ques…eep-jquery-drop-down-menu



    Würde man über die entstandene Lücke auch solch ein Dingens bauen sollte es nicht mehr hüpfen.

    Da du JS begeistert bist: Dort gibt es auch JS Lösungen.

    wie man felder focusiert und so das weiss ich .aber wie man es verhindert das sie focusiert werden das weis ich so nicht,habe zwar eine vermutung aber die muss ich erstmal testen ob es klappt. vileicht weiss das ja wer anders . aber ich google mal ob ich was gescheites finde

    Also inzwischen klappt es, nur zur Info. Es ist aber über Expert-Attribute (data-auto-focus = false/0) im Portal Manager selbst gelöst. Somit kann ich leider auch nicht aufzeigen wie und warum das ganze nun funktioniert.


    html-seminar.de/woltlab/attachment/1299/


    Letzte Zeile.

    Danke aber natürlich trotzdem für die Mühe!

    Also nun läuft es, vielen Dank!

    Es sieht so aus:

    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;
        }
    }

    Werde mir dann in Ruhe noch einmal das ganze zu Gemüte führen um zu verstehen was das Skript eigentlich alles macht. Muss zugeben, dass ich diese Tabellenanfragen mit rows und length bisher nur selten genutzt habe.

    Das ganze gibt es so gar nicht mehr, bzw ist deaktiv ;) Da ging es um eine Überbrückung bis ein anderes Skript fertig ist. Und durch das Skript wurde erreicht, dass bestimmte Nutzer einen Link sehen, andere nur den Text. Standardmäßig hätten alle den Link gehabt. Das reload hat Inhalte der Tabelle aktualisiert, also auf neue Einträge geprüft. if/else hatte Sinn denn einmal blieben Links bestehen und einmal nicht. War nur zu unzuverlässig und austricksbar. Ist inzwischen aber einfacher und zuverlässiger gelöst. So mal gaaaanz grob beschrieben.

    Es ging mir jetzt nur drum zu zeigen wie es bereits geschafft wurde auf Tabellen zuzugreifen, nicht durch das alte Chaos verunsichern lassen ;)

    Ok wenn es um das reine messen geht:
    html-seminar.de/woltlab/attachment/1294/

    Soweit das ganze online ist und man im Live-Modus sehen will wie viele Pixel wo sind lohnt sich F12 und ein klick auf das Element. Je nach Browser sieht das anders aus. Dann kann man auch direkt live dran rum spielen. Klar gehen auch JSfiddle und Co. aber ich finde es manchmal ganz angenehm live alles kaputt zu schlagen als extrahiert nur an einem dummy.


    Zum messen, falls man wirklich Pixel braucht und keine Prozent, nutze ich Tools wie bspw. PicPick. Eigentlich zum Screenshots machen da kann es auch herrlich messen. Sieht dann so aus:

    html-seminar.de/woltlab/attachment/1296/

    Gibt dann auch noch die Möglichkeit ein Bildschirmlineal dran zu setzen etc. Kann man sich bequem auf ein Tastaturkürzel legen und ist immer gleich dabei.



    Aber das Argument mit den Prozenten ist nicht abwegig. Je nachdem für was das ganze nachher gebraucht wird kann es knapp werden mit den Pixeln.

    Nachtrag aus einer anderen Applikation. Das ist nicht von mir geschrieben, aber spricht einen Teil der Tabelle an:

    Vielleicht kann man das auf die jetzige Situationen anwenden.

    Ja das ist die ID. Wie zuvor mit dem Textfeld eine vorgegebene ID. Ich kann sie ändern, aber das Ergebnis bleibt das gleiche.
    Beim Textfeld, und auch sonst wenn ich mit anderen Elementen arbeite, klappt das ID-Aufrufen auch. Nur die Tabelle will mir nicht gelingen.


    Intranet, leider kein Zugang von außen.

    html-seminar.de/woltlab/attachment/1293/


    html-seminar.de/woltlab/attachment/1290/ html-seminar.de/woltlab/attachment/1291/


    Habe auch versucht die tablerecords ID (und andere dort aufgeführte) anzusprechen. Auch mit der guid. Alle mit dem gleichen Ergebnis:
    html-seminar.de/woltlab/attachment/1292/

    Nein ein Link geht leider nicht. Ist eine Intranet-Lösung. Unternehmen, nicht privat. Ich habe dieses Skript nicht geschrieben. Es ist durch Intrexx (Software Lösung zur Portal Erstellung) zusammen gebaut. Ich versuche das beste aus dem was mir vorliegt zu machen bzw. mit den mir gegebenen Möglichkeiten und meinem beschränktem Wissen.


    Gibt es denn allgemeine JS Befehle die helfen könnten? Ein Klick auf irgendetwas unsichtbares um den Eingabefeld-Aufruf zu verhindern vielleicht?

    Code
    <td valign="top">
    <input name="textcontrolF4C8BB7C" title="Eingabefeld" class="Editfield_Standard" id="ID_textcontrolF4C8BB7C" style="width: 100px;" onkeyup="self.oUp.oEvent = (Browser.ie) ? $.extend({}, (event || window.event)) : event || window.event;var rv=true;if(rv){rv=this.oUp.validateInputLength();}return rv;" onfocus="var rv=true;return rv;" onblur="var rv=true;return rv;" type="text" placeholder="Eingabefeld" value="" form="ID_formgroup91A75EBB"></td>

    Das wäre mal ein Code eines Felds welches so etwas auslöst. Ich habe nur schwer Zugriff auf das HTML wenn es daran liegt und hoffe deswegen auf eine JS Umwegs-Lösung.


    Das wäre immerhin der Teil der Seite (container) auf welchem das ganze abläuft:

    Danke schon mal für die flotte Antwort!


    Bekomme nur meinen geliebten Nullverweis oder undefiniert Fehler...

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

    Entschuldige, schlecht ausgedrückt. Mit "hier" meinte ich bei mir vor Ort.


    Ich öffne eine Seite. Oben sind Tabellen, ohne Suchfunktion, dann kommt blabla und unten ist eine weitere Tabelle (um die zu sehen müsste ich schon scrollen, ist auch weniger wichtig). Diese Tabelle hat eine Suchfunktion durch ein Eingabefeld. Automatisch springt nun beim Aufruf der Seite der Browser nach unten auf Höhe des Eingabefelds und wartet auf Eingabe.


    Echt ne gute Funktion wenn ich Formulare baue und diese direkt beim Fenster öffnen ausgewählt sind zum schnellen ausfüllen. Aber in solchen Situationen absolut hinderlich. Zudem, dass diese Funktion des automatischen Auswählens den "Grautext" verschwinden lässt.


    Bsp:
    html-seminar.de/woltlab/attachment/1289/


    Mal angenommen das Eingabefeld links, wo 'Dokumentensuche' drüber steht, wäre nun weiter unten, wird direkt beim Seitenaufruf gescrollt. Zudem möchte ich dieses automatische Auswählen ab und zu mal nicht. Denn eigentlich steht dort im Grautext 'Titel' bis man darauf klickt. Er klickt ja schon von selbst drauf los.