• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Links sollen Logindaten zeigen die auch ausgeblendet werden sollen

andynail

Mitglied
Links sollen meine Logindaten einblenden und auch wieder ausblenden können

Hallo zusammen

auf meiner Linksammlung klicke ich in einem iframe einen Link an und unter diesem wird ein div mit Logindaten eingeblendet. Und jetzt will ich diese ja auch mal wieder ausblenden. Doch will das nicht funktionieren.

Wenn der Link ausgeführt wird, wird zZ folgende Funktion ausgeführt:

Code:
function ShowLinkDaten(Link)
{
    var Leiste = top.document.getElementById("Daten")
    Leiste.innerHTML = Link.getAttribute("Daten")
    Leiste.setAttribute("LinkIndex", $('a').index(Link));
    LinkObjektePositionieren("LinkDaten", self.name)
    top.document.getElementById("LinkDaten").style.display = ""

    window.onscroll = function() { HideLinkDaten() }
    window.document.onclick = function() {HideLinkDaten(); }

    Link.className = "Daten"
}

function HideLinkDaten()
{
    if (top.document.selection && top.document.selection.empty)
    { 
    top.document.selection.empty()
    }
    if (top.frames["DatenFrame"].document.activeElement.tagName == "BODY" && top.document.getElementById("LinkDaten").style.display == "" && top.frames["DatenFrame"].ActiveLink.tagName != document.activeElement.tagName)
    {
    top.document.getElementById("LinkDaten").style.display = 'none'
    window.document.onclick = function() {}
    window.onscroll = function() {}
    }
}

Ich bin am absoluten verzweifeln, es will aber doch absolut nix funktionieren. Ich will ja auch das die Seite auch per Tastatur bedienbar ist und also hat jeder Link die Funktion sich als ActiveLink bestimmt und zwar wenn er den Fokus erhält und verliert. Denn wenn per Tastatur bedient wird, wird der ActiveLink verschoben und wenn man außerhalb des iframes klicktverliert doch der zZ aktive Link den Fokus? Und dann soll man bei Ihm wieder einsteigen können.

Also freue ich mich auf Eure Hilfe

Gruß Andreas
 
Zuletzt bearbeitet:
Ohne den dazugehörigen HTML-Code ist das schwer nachvollziehbar. Sagt denn die JavaScript-Konsole etwas?
 
Hallo

ok verstehe du bräuchstest wohl die Seite vor Dir. Jedoch kann ich damit nicht dienen. Also sag mir bitte was du an Code bräuchtest? Ich könnte eine Datei aus dem iframe als txt hochladen. Denn wird aus dieser Seite heraus gewechselt zeigt der ie stets "Unbekannter Fehler" und der firefox nix an. Ausblenden wollen jedoch beide die Zeile nicht. Gut, ich sah gerade das ich auch ActiveLink.tagName abfrage, doch setze ich diese Variable standardmäßig auf undefined. Bei dieser Datei handelt es sich um eine reine html Datei die bisher noch nicht an eine Datenbank gebunden ist.

Danke Gruß Andreas
 
Genau. So kann man dir nicht sagen was falsch läuft. "Unbekannter Fehler" und "zeigt nichts an" ist auch keine brauchbare Fehlerbeschreibung. Wie gesagt, solltest Du in der JavaScript-Konsole evtl. auftretende Fehler finden.
 
Hallo

nur irgendwie bekam ich jetzt keine Möglichkeit eine Datei hochladen zu können. Ich saß egal durch welchen Button vor einem leeren Fenster. Und ich weis ja nicht was ich zeigen kann. Denn wenn ein Fehler kommt, dann soll es eh die if then Zeile sein die ein Fehler verursacht.

Dei Seite zeigt eine Menüzeile mit u.a. dem Eintrag
PHP:
echo "<td Name='Bereiche' ID='Bereiche' style='width:80px; padding:0;  ' class='dabei'><div class='BTextStandard'  onmouseOver=\"javascript:MenueUp(); this.className = 'MainTextOver'\" onmouseOut=\"javascript:this.className  = 'BTextStandard'\" onclick='OpenLink(this)' onselectstart='return  false' Link='Main.php?".urlencode("b=0&db=Main&table=Main")."  &SetupMode=' >Main</div></td>";

und dem iframe
HTML:
<iframe id='DatenFrame' name='DatenFrame' allowtransparency="true" onfocus="if (self.ActiveLink != undefined) self.ActiveLink.focus()" onload="javaScript: document.getElementById('MarkerAll').innerHTML = '>'; top.document.getElementById('Daten').setAttribute('Index', ''); document.getElementById('SuchenBereich').style.display='none'; HideLinkDaten()" frameborder="5" style="border: 5px solid #00ee00; border-top:0"></iframe>

und die body Zeile sollte wohl auch die Funktion mit onresize aufrufen, da die Zeile bei solch einem Geschehen nicht mehr an richtiger Stelle sitzen wird.

Und die HTML Datei selbst ist ja nur eine Aufstellung von ein paar Links und die Umgebung wird durch eine externe javascript Funktion eingerichtet, was ja bisher einwandfrei lief. Aber gerade diese Datei hat auch etwas mehr zu formatieren und beim verlassen wieder zurückzusetzen. Und das wäre hier ein wenig viel code.

Gruß Andreas
 
Hallo zusammen

mensch schade das sich niemand mehr gemeldet hat und ich jetzt vor dem Geschehen ratlos sitze. Die Zeile muss ja auch wieder weg und ich will halt auch keine Fehlermeldungen im ie zu sehen bekommen müssen.

Und kann ich denn überhaupt einem Objekt wie dem iframe onclick zuweisen und damit die Zeile ausblenden oder braucht dies jeder einzelne Link? Es ginge ja auch noch um ein DropDown Menü und da wäre es ja schon eine tolle Sache wenn ich den jeweiligen Objekten, wüsste halt auch gerne welchem, ich beim öffnen eine entsprechende Funktion zuweisen könnte.

Also würde mich über über Eure Hilfe sehr freuen damits wieder weitergehen kann.

Also will ich mich auch gleich dafür bedanken Gruß Andreas
 
Hallo zusammen

mensch schade das sich niemand bereit erklärt ein Link zu Zeigen :O).

JavaScript-Konsole = Fehlerkonsole FF, meinte er vielleicht.
Die Zeile muss ja auch wieder weg und ich will halt auch keine Fehlermeldungen im ie zu sehen bekommen müssen.
das ist jetzt ein witz von dir oder?
hat @threadi nicht nach einer fehlermeldung gefragt?
zwar von fehlerkonsole aber IE ist schon mal ein anfang.


onfocus geht bei iframe.

Cheffchen
 
Hallo

so und jetzt bin ich weiter am rumbasteln und kam auf folgende Zeilen:
Code:
function ShowLinkDaten(Link)
{
 var Leiste = top.document.getElementById("Daten")
 Leiste.innerHTML = Link.getAttribute("Daten")
 Leiste.setAttribute("LinkIndex", $('a').index(Link));
 LinkObjektePositionieren("LinkDaten")
 top.document.getElementById("LinkDaten").style.display = ""
 if (top.BIndex != 0) top.frames["DatenFrame"].window.onunload = function() {HideLinkDaten(); }
 top.frames["DatenFrame"].onscroll = function() {HideLinkDaten(); }
 top.frames["DatenFrame"].document.onclick = function() {HideLinkDaten(); }
 top.window.onresize = function() {BereichAnpassen(); HideLinkDaten(); }
}
function HideLinkDaten(Element)
{
 if (top.document.selection && top.document.selection.empty)
 { 
 top.document.selection.empty()
 }
 if (document.activeElement.getAttribute("Daten") == undefined)
 {
 top.document.getElementById("LinkDaten").style.display = 'none'
 top.frames["DatenFrame"].document.onclick = function() {}
 top.frames["DatenFrame"].onscroll = function() {}
 top.window.onresize = function() {BereichAnpassen(); }
 }
return
}

Im ie wird die Zeile stets ausgeblendet, doch im firefox bleibt sie stehen beim Wechsel der Seite/wechsel des iframe Inhalts. Und beim scrollen bleibt die Zeile ja auch stehen und da würde ich auch gerne wissen wie ich das denn angehen soll. Ich weis nicht wie denn für jede Situation die einzig richtige Abfrage lauten sollte. Und das ist schade, so dass ich mich über Hilfe sehr freuen würde.

Danke Gruß Andreas
 
Zurück
Oben