Me enfrenté a esta extraña situación donde foreach como constructo de javascript no funciona en IE pero funciona en FF. Bueno, no todos for..in
simplemente esta funciton especial no funciona. Voy a publicar el código. Probado en IE8. Probado también con XHTML DTD.Javascript for..in bucles sobre argumentos ie.for (arg en argumentos) no funciona en IE8 pero funciona en Chrome 8
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Test </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script type="text/javascript">
<!--
String.prototype.format = function() {
var formatted = this;
var mycars = new Array(); //some
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";
var arg;
for (arg in mycars) { alert('it comes here');
formatted = formatted.replace("{" + arg + "}", arguments[arg]); }
return formatted;
};
String.prototype.format2 = function() {
var formatted = this;
var arg;
for (arg in arguments) { alert('it does not come here');
formatted = formatted.replace("{" + arg + "}", arguments[arg]); }
return formatted;
};
function fn() {
var s = 'The {0} is dead. Don\'t code {0}. Code {1} that is open source!'.format('ASP', 'PHP');
alert('format:'+s);
var s2 = 'The {0} is dead. Don\'t code {0}. Code {1} that is open source!'.format2('ASP', 'PHP');
alert('format2:'+s2); //does not replace {0}s and {1}s
}
//-->
</script>
<BODY>
<input type="button" value="click " onclick="fn();" />
</BODY>
</HTML>
actualización He publicado una pregunta equivocada que funciona en Firefox, pero no en IE8, que estaba equivocado. No funciona en Firefox también. En realidad, obtuve este código de la publicación JavaScript equivalent to printf/string.format.
¡Ese es el código de W3Schools! – Raynos
¿Qué versión de IE estás usando? – stivlo
Estoy usando IE8, FF3.6.8 y Chrome 8.0.552 –