IE の Range オブジェクトについての質問です。

テキストボックスからフォーカスが外れた際のイベント(jQueryの'focusout'イベントを使ってます)で、選択されていた部分の文字列を取得するという処理をしたいのですが、どうしてもうまく行きません。
以下のJavaScriptソースコード中、try区の2行目でエラーが発生し、「引数が無効です」と言われてしまうのですが、どうしても原因が特定できず困っています。

どなたか、原因のわかる方のお知恵をお借りできたらと思います。
よろしくお願いします。

<html>
  <haed>
    <script src="/javascripts/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="/javascripts/test.js" type="text/javascript"></script>
  </haed>
  <body>
    <input id="my-input" type="text" name="foo" value="test" />
  </body>
</html>
jQuery(document).ready(function($){
  var test1 = function(e){
    var range = document.selection.createRange();
    var range2 = document.body.createTextRange();
    var res = {};

    try{
      range2.moveToElementText(this);
      range2.setEndPoint('EndToEnd', range);
    } catch(e) {
      alert(e.message);
    }

    res.start = range2.text.length - range.text.length;
    res.end = res.start + range.text.length;
    res.text = range.text.substring(res.start, res.end);
    
    alert(range2.text);
  };
			 
  $("#my-input")
    .bind("focusout", test1);
});

[追記 : 2月8日] 解決しました。
[ JavaScript ] IE の Range オブジェクトについての質問です。 … - 人力検索はてな
返信してくれたCherenkov さん、windofjulyさんありがとうございました。