2009-05-12 6 views
3

ドキュメントの内容全体をajaxリクエストから得られたレスポンスに置き換える必要があります。iPhoneでドキュメント本体を置き換える

私はdocument.body.innerHTMLに割り当てようとしましたが、document.write()も試してみました。 これらはどちらもデスクトップのSafariで機能しますが、私はiPhone/iPod Touch用のソリューションが必要です。 document.body.innerHTMLを変更しようとすると例外7が発生し、document.write()関数はモバイルサファリでは未定義です。

フォームの投稿が完了するのを待っている間、基本的にアクティビティインジケータが表示されています。私はサファリが完了するまでレスポンスのレンダリングを開始したくないので、完了するまでに時間がかかる可能性があります。

答えて

0

私は自分の3G iPhoneでテストしましたが、document.body.innerHTMLを設定するとうまくいきました。私は体がJSを実行する前にロードされたことを確認するために私のテストでのjQueryを使用しました:

<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

私はWindows上のSafari 4ベータ版によ、IPhoneに設定されたユーザエージェントと。 これは私が持っているiPod touchでは動作しません。 また、HTML応答全体をinnerHTMLプロパティに割り当てています。 –

+0

ええと、あなたは、HTML応答からhtml、head、およびbodyタグを取り除いてからjavascriptに渡してみましたか?多分、bodyタグにhtmlタグやbodyタグを読み込むのが好きではないでしょう。 – kbosak

+0

@Martin私は、この答えに対するあなたの応答に基づいて、Ajaxリクエストにはフルページが含まれていると仮定しています。これが本当であると仮定すると、どうしてAJAXを使用しているのですか?全く新しいページとして新しい本文の内容を読み込むのはなぜですか?なぜAJAXを使うのですか? document.location.hrefを設定し、あなたが探していることを行うためにアンカータグを使用する目的はありませんか? – coderjoe

関連する問題