アプリ版:「スタンプのみでお礼する」機能のリリースについて

jQueryのloadで上の階層の外部HTMLを読みたい

同じ階層内は問題なく読み込めたのですが、上部階層のファイルが読み込めません。

記述は

$("#sub_header").load("../header.html");

たぶんこれが間違っているんだと思うのですが検索してもわかりませんでしたので、
質問させて頂きました、よろしくお願いいたします。

A 回答 (2件)

XHR.readyStateが '1' という事は、’ロード中’って事ですね



0 = 初期化されていない
1 = ロード中
2 = ロード済み
3 = 対話可能
4 = 完了

です。

XHR.statusの方はサーバーが返すレスポンスコードですから、
まだ、無いんですね。うまくいくと'200'が返されるはずです。
サーバーが FileNotFound 404 や、アクセス禁止、インターナルエラー
等のコードを返してる分けでもない。

残念ながら、それしか解りません。
お役に立ちませんで...
    • good
    • 0

「たぶんこれが間違っているんだと思うのですが」



=>相対パスのURLでも$.load()は可能です。
  そおいった意味では間違っていません

$("#sub_header").load("../header.html",
function(responseText,textStatus,XHR){
alert(responseText); //読み込んだもの
alert(textStatus); //"success"のはず
alert(XHR.readyState); //"4"のはず
alert(XHR.status); //"200"のはず
alert(XHR.responseText); //読み込んだもの
});

で、ステータスとか読み込んだ物を確認できますよ。

根本的にAJAX利用、思い違いしてませんか?

読み込んだ、HTMLが自ページのHTMLと不整合を引き起こし、
それがブラウザーの自動補正機能でも修正しきれないもの
だとレンダリング不能になり、いつまでもグルグルになり
ますよ。

この回答への補足

回答ありがとうございます。実行してみました。


undefined
1
0


ちなみに読み込みが成功しているページでは、数字は少し違いましたがyyr446さんの言ったとおりの結果がでました。

成功しているページ
$("#header").load("./header.html");
index.htmlから同階層内のheader.htmlの読み込み

失敗しているページ
$("#header").load("../header.html");
index.htmlから一つ上の階層のheader.htmlの読み込み

基本的に二つはコピー、他のファイル指定はjs含め全て合っているはず(alertの結果が出ることからも)で、成功と失敗の差はドット一つです。


../header.htmlを絶対パスで打ち込んでみると、successとは出ましたが、
他は変わりなしでした。



//根本的にAJAX利用、思い違いしてませんか?

只今、何ができるか、どういったものか、AJAXについて勉強中ですので全て実験段階です。
javascript自体もほとんど初心者ですので、
今回の質問も二つのファイルの違いはドットひとつ、[ ../ ]という記述自体が使えないのかも?
でも、調べても相対パス不可というのは見つけられなかった。。ということからなのです。
AJAX等についてはこれから理解するつもりですので、大目に見ていただけると幸いです。


undefinedということでいろいろ試していますが、まだ解決できません。。

補足日時:2010/09/16 17:45
    • good
    • 0
この回答へのお礼

お世話になります

QNo.6042655
JQueryでのloadの動作がFirefoxで動かなくて困っています。

この質問、たまたまyyr446さんがお答えになられている質問ですが
私とまったく同じ症状なんです。(ちなみに私はfirefoxでプレビューしております)
QNo.6042655と同じくIEでプレビューしてみると問題なく動作しましたことを報告します。

このことを受けてFireFoxでの動作問題と受け止め、二つのファイルを同階層内にとどめることによって一応の解決と致しました、と同時にお礼申し上げます、ありがとうございました。


ですが根本的には解決してはおりません。。。
FireFoxの問題で済まして良いのやら。。。

お礼日時:2010/09/16 18:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!