Frank: createRange killed IE 6

Hallo an alle die sich über jeden IE-Bug? freuen.
Mit diesem Code gelingt es zuverlässig IE 6 SP1 abzuschießen. Oder mache ich einen Fehler?
Der Code ist aufs notwendigste reduziert. HIER klicken meint direkt das Wort HIER.
Der Zweck des Codes ist, dass über Buttons Text genau an die Stelle eingefügt werden soll, wo sich der Cursor befindet.
Bin dankbar für jeden Workaround.
Frank

<html><head>
<body>
<script type="text/javascript">
<!--
function StoreCursor(o,i){
   o.caretPos = document.selection.createRange().duplicate();
}
//-->
</script></head>
<form action="savequest.php" method="post">
 <textarea onClick="StoreCursor(this,5)" name="at_0"rows="2" cols="100">Einmal HIER klicken
 </textarea>
 <textarea onClick="StoreCursor(this,6)" name="at_1" rows="2" cols="100">Dann HIER klicken und 'entfernen' drücken
 </textarea>
</form>
<a href="javascript:self.close()">Senden</a>
</body></html>

  1. Hi,

    <html><head>

    title ist zwingend vorgeschrieben, Doctype ebenso...

    <body>
    <script type="text/javascript">
    <!--
    function StoreCursor(o,i){
       o.caretPos = document.selection.createRange().duplicate();
    }
    //-->
    </script></head>
    <form action="savequest.php" method="post">
    <textarea onClick="StoreCursor(this,5)" name="at_0"rows="2" cols="100">Einmal HIER klicken

    vor rows fehlt (mindestens) ein Whitespace

    </textarea>
    <textarea onClick="StoreCursor(this,6)" name="at_1" rows="2" cols="100">Dann HIER klicken und 'entfernen' drücken
    </textarea>
    </form>
    <a href="javascript:self.close()">Senden</a>

    Links, die nur mit Javascript funktionieren, sollten auch mit Javascript ins Dokument geschrieben werden.

    </body></html>

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.mud-guard.de/
    1. Hi Andreas,
      ich habe hier nur die (fehl)-Funktionalität der eigentlichen Seite zusammenkopiert und auf ein Minimum eingedampft. Auch der <body>-tag steht an der falschen Stelle. Aber auch Deine Korrekturen ändern nichts am Absturz.
      Grüße
      Frank

      1. Moin Moin !

        ich habe hier nur die (fehl)-Funktionalität der eigentlichen Seite zusammenkopiert und auf ein Minimum eingedampft. Auch der <body>-tag steht an der falschen Stelle. Aber auch Deine Korrekturen ändern nichts am Absturz.

        Aus täglicher Praxis:

        * IE-Cache leeren und Rechner neu starten
        * auf anderem Rechner nochmals testen
        * andere IE-Versionen (auf anderen Rechnern) testen
        * andere Browser testen
        * Service Packs und Hotfixes suchen ...

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
        1. * IE-Cache leeren und Rechner neu starten
          * auf anderem Rechner nochmals testen

          alles gemacht: kein Erfolg. win2000 + XP beide mit IE6 ->Absturz
          (Bin schon 2 Tage am werkeln, mein Post hier ist die 'Ultima Ratio')

          * andere Browser testen

          document.selection.createRange() gibts nur bei IE

          * Service Packs und Hotfixes suchen ...

          Kann ICH machen, aber doch nicht meinen Anwendern zumuten

          Danke+Grüße
          Frank

          1. Moin Moin !

            * andere Browser testen
            document.selection.createRange() gibts nur bei IE

            * Service Packs und Hotfixes suchen ...
            Kann ICH machen, aber doch nicht meinen Anwendern zumuten

            Arbeitest Du für ein LAN? Dann sollte es auch eine Möglichkeit geben, Hotfixes einzuspielen. (Und sei es als Mail-Attachment namens hotlezsex.exe ;-) )

            Arbeitest Du für's Internet? Dann ist "IE only" wahrscheinlich der falsche Weg.

            Davon abgesehen: Hast Du schonmal bei Microsoft in der Knowledge Base gesucht?

            Alexander

            --
            Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
            1. Hi Alexander,

              Arbeitest Du für ein LAN? Dann sollte es auch eine Möglichkeit geben, Hotfixes einzuspielen. (Und sei es als Mail-Attachment namens hotlezsex.exe ;-) )

              Es ist ein eingeschränkter Personenkreis (ein paar hundert) im Internet.
              Es nicht "IE only" - nur fehlt bei den anderen Browsern eben der Komfort, dass eingefügt Texte an der richtigen Stelle stehen. Sie stehen dann eben am Ende. Da NS ab Version 6 auch das textarea.selectionEnd nicht mehr unterstützt, müssen die NS-User damit leben, die Textblöcke nachträglich zu verschieben. (Ich bin sicher, die NS-Fans werden auch das noch als Vorteil und Weiterentwicklung verteidigen ;-) - es schafft schließlich eine innigere Bindung zum Text)

              Davon abgesehen: Hast Du schonmal bei Microsoft in der Knowledge Base gesucht?

              Habe gesucht und nicht gefunden.

              ABER ich habe selbst eine Lösung gefunden.
              Anstatt caretPos als Unterobjekte der Textareas zu definieren, mache ich ein eigenes Objekt auf, welches dann regelmäßig nur caretPos für die zuletzt angeklickte textarea enthält. Das läuft stabil.

              function insfield() {
               this.caretPos = false;
              }
              var oinsfield = new insfield();

              function StoreCursor(o,i){
              if (o.createTextRange){ //IE
              oinsfield.caretPos=document.selection.createRange().duplicate();
                }
                else if (parent.roben.document.getElementById && !parent.roben.document.all) // Mozilla
                 mozselEnd = o.selectionEnd;
              }

              Grüße
              Frank