У меня есть строка, которую нужно разделить на три символа подчеркивания.Пример строки может быть:
var stringItemsPlanner = "Hello this___is a string___which___needs splitting into___an array";
Так что я использую функцию Split ().Хорошо во всем, кроме IE8 (и, вероятно, 7 тоже, но не пробовал), который выдает ошибку «Объект не поддерживает это свойство или метод», если строка не содержит этих символов.Итак, я нашел другой пост, в котором говорится, что перед разделением в строке появляются символы подчеркивания, поэтому я делаю это:
if (stringItemsPlanner.indexOf('___') == -1){
arrItemsPlanner = [];
}else{
arrItemsPlanner = stringItemsPlanner.split('___');
}
Но теперь это тоже ошибки, потому что, по-видимому, IE8 не поддерживает indexOf.
После долгих поисков я попытался добавить код в начало моего скрипта, чтобы он действовал как «полифайл» для этого метода:
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/){
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)? Math.ceil(from) : Math.floor(from);
if (from < 0){
from += len;
for (; from < len; from++){
if (from in this && this[from] === elt){
return from;
}
return -1;
};
}
}
}
Но все равно не радость.
Сейчас я на грани разочарования и не могу придумать другого способа заставить эту простую вещь работать.
Может кто-нибудь пролить свет на это или придумать альтернативу?способ безопасно разделить строку на массив таким образом, который работает кросс-браузер?Это должно быть просто, но я просто не могу думать прямо сейчас.
Спасибо всем!