2015-08-04 3 views
1

Я использую текстовое поле и вызываю функцию js для проверки десятичной точки. есть блок в том, что JS функции, как показано ниже:Функция indexOf() возвращает undefined в Safari 5.1.7

var nfGroups = newArray(); 
 
var decimalPos = inputObject.value.indexOf(nfGroups[numericFieldName][index].decimalPoint); 
 
var selection = window.getSelection(); 
 
if(decimalPos != -1 && (selection.indexOf(nfGroups[numericFieldName][index].decimalPoint) == -1)

В заявлении, если для второго условия, в Safari, значение не определено и, следовательно, возникает ошибка Javascript. Может кто-то, пожалуйста, помогите мне с этим? NumericFieldName - это имя поля, используемого для ввода цены.

+2

Текущая версия Safari - 8.0.7. Safari 5.1.7 является древним. Он больше не получает обновлений безопасности. Прекратите поддерживать его. Удалите его с любого компьютера Windows, на котором он установлен. Обновите любой Mac, на котором он установлен. – Quentin

+0

Возможно, 'window.getSelection' не определено, и поэтому результат' indexOf' также не определен. – hindmost

+0

Спасибо за ваш ответ @Quentin. Некоторые из наших приложений работают на старой версии Safari. Переписывание выполняется, но на данный момент нам нужно использовать 5.1.7-версию. –

ответ

0

Я пытался использовать другие возможности и преобразовывал выбор var в строку.

this is how i used: if(decimalPos != -1 && (selection.toString().indexOf(nfGroups[numericFieldName][index].decimalPoint) == -1)

Это работало.