JQuery в карет плагин не работает в IE - PullRequest
2 голосов
/ 12 января 2012

Я реализую очень большую скриптовую логику, используя плагин jquery в каретке (http://code.google.com/p/jquery-at-caret/),, но теперь, когда я закончил, я понял, что он работает только в Firefox и Chrome, он не работает в Internet Explorer.Я понял, что функция "setCaretPosition" - это то, что не работает в IE.

Я получаю только в IE "o is undefined", вы можете увидеть в фрагменте кода ниже, что это происходит из 79-89 строккода плагина, но я не могу понять, как это исправить.

Я создаю очень маленький фрагмент кода, чтобы просто повторить эту ошибку: http://www.mediafire.com/?xxt0medyci61690

Ответы [ 2 ]

3 голосов
/ 12 января 2012

Я изменил код в плагине

 setCaretPosition: function(pos) {
  var f1, f2, o;
  o = this[0];
  if (o.setSelectionRange) {
    o.focus();
    return o.setSelectionRange(pos, pos);
  } else if (o.createTextRange) {
    f1 = function () {
      return o.focus();
    };
    setTimeout(f1, 10);
    f2 = function() {
      var range;
      range = o.createTextRange();
      range.collapse(true);
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      return range.select();
    };
    setTimeout(f2, 20);
    return pos;
  }
}

Пожалуйста, проверьте, я тестировал в IE8, IE9 и Firefox.

2 голосов
/ 12 января 2012

Функция f (o, pos) вызывает проблему.Попробуйте сделать отдельные функции, а затем вызывать их.Есть две функции, определенные с одинаковым именем f.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...