2013-12-03 2 views
0

Я написал функциональность, чтобы заменить текст, когда пользователь вводит текстовое поле. Я написал отдельно для chrome firefox safari и opera. Я написал для новых IE-s, однако я не мог изменить его, чтобы соответствовать IE8. Пожалуйста, помогите мне заставить его работать в этой среде. Я совсем не ищу IE7, потому что это так зондлематично, но мне нужно это для IE8.Как сделать работу createTextRange основанной на моем примере?

if (document.selection && document.selection.createRange) { 
      var selectionRange = document.selection.createRange(); 
      var textInputRange = element.createTextRange(); 
      var precedingRange = element.createTextRange(); 
      var bookmark = selectionRange.getBookmark(); 
      textInputRange.moveToBookmark(bookmark); 
      precedingRange.setEndPoint('EndToStart', textInputRange); 
      start = precedingRange.text.length; 
      end = start + selectionRange.text.length; 

      element.value = val.slice(0, start) + 'WORKS' + val.slice(end); 
      start++; 

      textInputRange = element.createTextRange(); 
      textInputRange.collapse(true); 
      textInputRange.move('character', start - (element.value.slice(0, start).split("\r\n").length - 1)); 
      textInputRange.select(); 
} 

ответ

0

Я также написал код для таких целей, и я использовал стройные рамки (https://code.google.com/p/rangy/). Это очень помогает! Она имеет следующие функции (часть из вики: https://code.google.com/p/rangy/wiki/TextRangeModule):

pasteHtml(String html) 
Replaces the contents of the range with HTML specified by html. 

Это просто в использовании и мощное.

Смежные вопросы