jquery .html () ne fonctionne pas sur ie8
J'ai une fonction jquery qui fait un appel ajax à un webservice méthode sur le serveur web, la méthode renvoie un tableau html avec des données. Je suis à l'aide .html() pour restituer les valeurs de retour sur les div. Cela fonctionne dans Firefox,Chrome, Safari, mais ne fonctionne pas sur 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 ligne $("#dvProudctInstruction").html(data.d[1]); fonctionne sur tous les navigateurs, sauf IE8.
Toute aide sera très appréciée.
source d'informationauteur jack
Vous devez vous connecter pour publier un commentaire.
Vous pourrait alerter votre réponse avant de l'affecter html()
OU
Vous pouvez utiliser innerHTML propriété plutôt que html() de jquery (si c'est le même)
Et vous pourriez vouloir vérifier cette lien
Il semble que IE8 a des problèmes lors de l'insertion de longues chaînes de texte avec jQuery html(), faisant de la div du contenu juste complètement vide.
Juste essayé à la fois une très longue chaîne et un contenant juste 'bla', et qui fait toute la différence.
Donc, si vous vous attendez à de très gros mandrins de texte (comme 2k+ personnages), aller pour le natif innerHTML.
Ne pas faire plus de recherche, je ne sais donc pas quelle est la longueur maximale d'une chaîne à passer par le html() dans IE8.
Avez-vous essayé de réglage
data.d[1]
à une variable, puis de l'ajouter?Par Exemple:
Si son .html() qui ne fonctionne pas ou ses autre chose, vérifiez d'abord. Mettre un message d'alerte et voir si vous obtenez correcte, prévu html ou pas.
Les plus susceptibles de l'html à venir dans les données.d[1] contient une erreur et IE n'est pas en mesure de le résoudre.
Juste une intuition, mais êtes-vous sûr que vous entrez dans le si-bloc? Je suis simplement en demandant à avoir trébuché dans le vrai vs "vrai" une couple de fois moi-même...
Essayer:
Pourrait ne pas être quoi que ce soit, mais au moins, vous éliminez la possibilité qu'il vous suffit de ne jamais faire fonctionner la ligne de code que vous avez mis en surbrillance.
j'ai répondu à ce problème sur lien
vous avez juste besoin de modifier votre code comme cela
Je sais que c'est peu de retard de réponse, mais vous pouvez également la fixer avec un bloc try/catch. Parfois, vous pourriez ne pas avoir tout le contrôle sur le contenu.
De cette façon, vous conservez l'original du code de travail pour les nouveaux navigateurs, alors que les captures exécute le innerHTML pour IE8.
Espère que cela aide quelqu'un!