Я написал простую функцию replaceAll, которая расширяет String.prototype.Допустимый вывод в IE9, но неопределенный вывод в IE7/IE8
String.prototype.replaceAll = function (removalChar, insertionChar) {
var output = "";
for (var i = 0; i < this.length; i++) {
if(this[i] == removalChar) {
output += insertionChar;
}
else {
output += this[i];
}
}
return output;
}
код теста:
var test = "Hello-1-2-3";
alert(test.replaceAll("-"," "));
Мой тестовый код оповещения во всех браузерах, включая IE9 Hello 1 2 3
.
Но в IE7 и 8, выход я получаю что-то вроде этого: undefinedundefinedundefinedundefinedundefinedundefined...
jsFiddle: http://jsfiddle.net/cd4Z2/ (попробуйте это в IE7/IE8)
Как мог Я могу переписать функцию, чтобы она работала на IE7/8 без нарушения ее поведения в других браузерах?
Спасибо за все супер-быстрый ответ! Я решил «принять» ответ Сатурникса за то, что он был самым подробным, но ответы Teemu и wiz kid тоже довольно крутые! – SNag