Andreas Nagel: selection.empty() ergibt "unbekannter Laufzeitfehler"

Hallo zusammen

auf meiner Seite sollen Daten zum rauskopieren angezeigt werden:

function ShowDaten(Link)  
{  
	top.document.getElementById("Informationen").style.left = top.X + top.document.getElementById("SideBar").offsetLeft + top.document.getElementById("Bereich").offsetLeft + 10 + "px"  
	top.document.getElementById("Informationen").style.top =  top.Y + top.document.getElementById("DatenBereich").offsetTop + top.KennungHeight + 50 + "px"  
	top.document.getElementById("Informationen").innerHTML = Link.getAttribute("Daten")  
	top.document.getElementById("Informationen").style.visibility = "visible"  
	top.document.getElementById("Informationen").focus()  
	top.document.selection.empty()  
}  

Diese Funktion wird per Javascript zugewiesen:

function AnzeigenZuweisen()  
{  
var a = 0  
var p = 0  
var Pos = 0  
var b = 0  
  
for (var i = 0; i < document.getElementsByTagName("a").length; i++)  
{  
var l = document.getElementsByTagName("a")[i];  
l.a = a;  
  
if (l.onclick == undefined && l.getAttribute("Daten") == undefined)  
{  
l.onclick = function(e) {  
top.ActiveLink = this;  
}  
}  
  
if (l.onclick == undefined && l.getAttribute("Daten") != "")  
{  
l.onclick = function(e) {  
top.ActiveLink = this;  
ShowDaten(this);  
}  
}  
  
if (l.onmouseover)  
{  
l.onmouseover = function(e) {  
BildTimeOut = window.setTimeout("ShowPicture(" + this.a + ")", 1000);  
}  
l.onmouseout = function(e) {  
window.clearTimeout(BildTimeOut);  
HidePicture(this.a);  
}  
a++  
}  
  
}  
  
}

Und das funktioniert auch fehlerfrei beim öffnen von Links auf html Seiten. Doch wenn ich zuerst einen Link aufrufe der mit php erstellt wurde, dann kommt die o.g. Fehlermeldung im IE was sich auf die Zeile top.document.selection.empty() bezieht.

Das ist jetzt wohl etwas zu weit her gebracht und damit schwer nachvollziehbar, Wäre aber genial Hilfe zu bekommen und dafür mich ich mich schon jetzt bedanken.

mfg. Andreas

  1. Lieber Andreas,

    die o.g. Fehlermeldung im IE was sich auf die Zeile top.document.selection.empty() bezieht.

    IE kennt kein document.selection-Objekt.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo  Felix Riesterer und danke

      jedoch ist es möglich wenn ich die Funktion ShowDaten() aus einem Link heraus aufrufe bevor ich nicht einen Link geöffnet hatte per php erstellt wurde.

      selection.empty() ist dafür notwenig das wenn in dem div Text ausgewählt wurde, dass beim nächsten anzeigen nichts mehr ausgewählt ist.

      Wie schaffe ich es sonst?

      Jetzt würde ich mich stark freuen dazu eine Lösung zu bekommen, und ich bedanke mich dafür jetzt im Voraus.

      Gruß Andreas

      1. Lieber Andreas,

        IE kennt kein document.selection-Objekt.

        jedoch ist es möglich wenn ich die Funktion ShowDaten() aus einem Link heraus aufrufe bevor ich nicht einen Link geöffnet hatte per php erstellt wurde.

        was genau willst Du mir damit sagen? Dieser (Halb-)Satz ergibt für mich unter technischen (und inhaltlichen) Aspekten kaum bis gar keinen Sinn.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    2. IE kennt kein document.selection-Objekt.

      Selbstverständlich kennt er das, und wenn du dort aufmerksam schaust, dann wirst du es in der Liste auch verlinkt finden (unten bei »Objects«).

      http://msdn.microsoft.com/en-us/library/ms535869(VS.85).aspx
      »Applies To: document, HTMLDocument Constructor«

      Und eine empty-Methode gibt es auch:
      http://msdn.microsoft.com/en-us/library/ms536418(v=VS.85).aspx

      M.

      1. Lieber molily,

        ich muss echt blind gewesen sein. Dann nehme ich alles zurück und behaupte ab sofort das Gegenteil.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. 'ǝɯɐu$ ıɥ

    Und das funktioniert auch fehlerfrei beim öffnen von Links auf html Seiten. Doch wenn ich zuerst einen Link aufrufe der mit php erstellt wurde, dann kommt die o.g. Fehlermeldung im IE was sich auf die Zeile top.document.selection.empty() bezieht.

    Und in allen anderen Browsern funktioniert es?

    ssnɹƃ
    ʍopɐɥs

    --
    I like children. If they're properly cooked.
    - W.C. Fields
    1. Hallo Shadowcrow

      ich probierte es ehrlich gesagt erst jetzt mal im Firefox mit Obacht auf die Fehlerkonsole. Und auch hier kommt jetzt die Fehlermeldung

      top.document.selection.empty() is undefined

      Und das muß weg. Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.

      Danke gruß Andreas

      1. 'ǝɯɐu$ ıɥ

        top.document.selection.empty() is undefined

        Und das muß weg. Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.

        Kann das die über PHP generierten Links irgendwie fehlerhaft sind?

        ssnɹƃ
        ʍopɐɥs

        --
        I like children. If they're properly cooked.
        - W.C. Fields
        1. Hallo Shadow,

          Und das muß weg. Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.

          Kann das die über PHP generierten Links irgendwie fehlerhaft sind?

          ich schenke Dir ein "sein", ein Komma und ein "dass" :-)

          Freundliche Grüße

          Vinzenz

          1. 'ǝɯɐu$ ıɥ

            Kann das die über PHP generierten Links irgendwie fehlerhaft sind?

            ich schenke Dir ein "sein", ein Komma und ein "dass" :-)

            Danke, du bist so gut zu mir :-).

            ssnɹƃ
            ʍopɐɥs

            --
            I like children. If they're properly cooked.
            - W.C. Fields
      2. Hi,

        Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.

        Das kannst du ja ändern.
        Zitat #1632

        MfG ChrisB

        --
        The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]
      3. ich probierte es ehrlich gesagt erst jetzt mal im Firefox mit Obacht auf die Fehlerkonsole. Und auch hier kommt jetzt die Fehlermeldung

        top.document.selection.empty() is undefined

        document.selection ist ein IE-Spezifikum, in anderen Browsern geht es mit window.getSelection().removeAllRanges(). Per Feature-Abfragen kann man einfach browserübergreifend programmieren, z.B.:

        if (document.selection && document.selection.empty) {  
           document.selection.empty();  
        } else if (window.getSelection) {  
           var sel = window.getSelection();  
           if (sel.removeAllRanges) {  
              sel.removeAllRanges();  
           }  
        }
        

        Warum der IE in deinem Fall beim empty-Aufruf eine Exception wirft, das müsste man am konkreten Code untersuchen.

        mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.

        Dann lade sie doch irgendwo kurzfristig hoch oder nutze Sites wie http://jsfiddle.net/.

        Mathias

        1. Hallo molily

          Vielen Dank! Es fehlte wohl die Frage ob denn überhaupt was selektiert ist, so meine Interpretation. Denn verwende ich die if then

          	if (document.selection && document.selection.empty)  
          	{  
             	document.selection.empty();  
          	}  
          
          

          dann funktionierts einwandfrei unter Firefox und IE und also jetzt wieder alles sauber.

          Nochmals Vielen Dank Gruß Andreas