remove - jquery.html() no funciona en ie8
jquery remove element (7)
¿Has intentado establecer data.d[1]
a una variable y luego agregarlo?
Por ejemplo:
if (data.d[0] == "true") {
var results = data.d[1];
$("#dvProudctInstruction").html(results);
}
Tengo una función jquery que realiza una llamada ajax a un método webservice en el servidor web, el método devuelve una tabla html con datos. Estoy usando .html () para representar los valores devueltos en div. Esto funciona en Firefox, Chrome, Safari pero no funciona en IE8
$.ajax({
type: "POST",
url: "./../WebAjaxCalls.asmx/GetProductInstruction",
data: "{''ProductID'':''" + $("#txtProductID").val() + "''}",
success: function(data) {
if (data.d[0] == "true") {
**$("#dvProudctInstruction").html(data.d[1]);**
}
},
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function(e, textStatus, errorThrown) {
bReturn = false;
}
});
La línea $ ("# dvProudctInstruction"). Html (data.d [1]); funciona en todos los navegadores excepto IE8.
Cualquier ayuda en esto será muy apreciada.
Puede alertar su respuesta antes de asignarlo html ()
O
Puede usar la propiedad innerHTML en lugar de html () de jquery (aunque es lo mismo)
Y es posible que desee comprobar este enlace
Si es .html () que no funciona o es algo más, verifíquelo primero. Ponga una alerta y vea si obtiene html correcto o esperado o no.
alert(data.d[1]);
$("#dvProudctInstruction").html(data.d[1]);
Lo más probable es que el html que entra en data.d [1] contiene un error y IE no puede resolverlo.
Solo una corazonada, pero ¿estás seguro de que ingresas al bloque if? Solo estoy preguntando haber tropezado en verdad contra "verdadero" un par de veces yo mismo ...
Tratar:
success: function(data) {
alert(''outside of if'');
if (data.d[0] == "true") {
alert(data.d[1]);
$("#dvProudctInstruction").html(data.d[1]);
}
}
Puede que no sea nada, pero al menos eliminaría la posibilidad de que simplemente nunca ejecute la línea de código que ha resaltado.
Parece que IE8 tiene problemas para insertar largas cadenas de texto con jQuery''s html (), lo que hace que el contenido de div esté completamente en blanco. Solo lo probé con una cadena muy larga y otra con solo ''blah'', y eso hizo toda la diferencia.
Entonces, si esperas tiradas de texto muy grandes (como 2k + caracteres), ve por el innerHTML nativo. No hice ninguna investigación adicional, por lo que no sé cuál es la longitud máxima de una cadena para pasar a través de html () en IE8.
Sé que es una respuesta tardía; pero también podrías arreglarlo con un bloque try / catch. A veces es posible que no tenga todo el control sobre el contenido.
De esta forma, mantendrá el código original funcionando para los nuevos navegadores, mientras que el catch ejecuta el innerHTML para IE8.
try {
//new browsers
$(''#dvProudctInstruction'').html(data.d[1]);
} catch (e) {
//IE8
$(''#dvProudctInstruction'').innerHTML = data.d[1];
}
¡Espero que esto ayude a alguien!
He respondido este problema en el enlace , solo necesitas cambiar tu código para que sea así
$("#dvProudctInstruction").html(data.d[1].toString());