2009-05-12 6 views
3

Je dois être en mesure de remplacer tout le contenu du document par une réponse obtenue à partir d'une requête ajax.Remplacement d'un corps de document sur l'iPhone

J'ai essayé d'assigner à document.body.innerHTML et ai également essayé using document.write(). Alors que les deux sont fonctionnels sur le bureau Safari, j'ai besoin d'une solution pour l'iPhone/iPod Touch. Tenter de modifier document.body.innerHTML produit l'exception 7 et la fonction document.write() est indéfinie sur mobile safari.

J'affiche essentiellement un indicateur d'activité en attendant la fin d'une publication. Je ne veux pas que Safari commence à rendre la réponse jusqu'à ce qu'elle soit complète, car cela pourrait prendre un certain temps.

Répondre

0

Je viens de tester sur mon iphone 3G et cela a bien fonctionné en définissant document.body.innerHTML. J'ai utilisé jQuery dans mon test pour m'assurer que le corps était chargé avant de lancer le js:

<html> 
<head> 
<script type="text/javascript" src="/js/jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    document.body.innerHTML = 'it worked'; 
}); 
</script> 

</head> 
<body> 
This is a test 
</body> 
</html> 
+0

Je suis sur safari 4 bêta sous Windows, avec l'agent utilisateur réglé sur IPhone. Cela ne fonctionne pas sur l'iPod touch que j'ai. En outre, j'affecte une réponse HTML entière à la propriété innerHTML. –

+0

Hm, avez-vous essayé d'enlever les balises html, head et body de la réponse HTML avant de le passer au javascript? Peut-être n'aime-t-il pas charger un tag html ou body dans une balise body. – kbosak

+0

@Martin Je suppose que la requête ajax contient une page entière basée sur votre réponse à cette réponse. En supposant que c'est vrai, pourquoi utilisez-vous AJAX, pourquoi ne pas simplement charger le nouveau contenu du corps comme une toute nouvelle page. Pourquoi utiliser AJAX? N'est-ce pas le but de définir document.location.href et d'utiliser des balises d'ancrage pour faire ce que vous cherchez? – coderjoe

Questions connexes