• 締切済み

AJAXでページを読み込ませられない

今ページ作りで困っています。 今まではそのページ(仮にpg1.htm)にAJAXにてDIVタグ(id=otherpg)内に他のページ(仮にaaa.htm)を読み込ませてうまくいっていました。 しかし、今回作っているページの構成ではpg1.htmの中でロードするのではなく、他ページ(仮にpg2.htmとする)に切り替えています→window.location.replace("pg2.htm") pg1.htmとpg2.htm両方とも同じメニューを使っており、pg1.htmが表示されてる時はDIVタグ内にaaa.htmをロードするとすんなり表示されます。 pg2.htmを表示しているときにスクリプト内にてpg1.htmに切り替えてからpg1.htmの中のDIVタグにaaa.htmを読み込ませようとすると読み込んでくれずうまくいきません。 結局pg1.htmが表示された後にDIVタグにaaa.htmを読み込んでくれというのをメニューから行うとできますが二度手間になってしまいます。 具体的にスクリプトで書くと、 //現在のページがpg1.htmの場合 if (toppg=="pg1.htm"){ ajaxpage(selection,' otherpg '); } //現在のページがpg1.htmではない場合=pg2.htmの場合 if (toppg!="pg1.htm"){ location.href="pg1.htm"; ajaxpage(selection,’ otherpg’); } toppgはdocument.location.hrefとsplit("/")にて現在のページ名、この場合はpg1.htmかpg2.htmがtoppgに格納されます。 ちなみにajaxpage(selection,' otherpg ');のところのajaxpageは以下のページに載っているAJAXのスクリプトを使用しています。 http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm ajaxpage('読み込ませたいページ名.htm','DIVタグとかのコンテナID名'); という感じの代物です。 うまく二度手間にならないようにスムーズにいく方法はないでしょうか?

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>やはりそういう手しかないのですかね? 自分自身を切り換えた後に切り換える前のスクリプトから切り換えた後のページが操作できないので、 自分自身でさせるしかないように思います。

smwithdm
質問者

お礼

一応、使いものになる程度にはできたのですが、その location.searchの追加分の影響で思うように動作しないのでまだまだ改良しなければいけませんが、ご指摘的ありがとうございますm(__)m

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ページを切り換えるスクリプトの後のスクリプトが希望するように動かないのはある意味当たり前のような気がします。 location.href="pg1.htm"; を例えば location.href="pg1.htm?page=selection&id=otherpg"; (selection は、実際には中味なので、 location.href="pg1.htm?page=" + selection + "&id=otherpg"; とでもなるのかもしれないが、直接埋め込むということで書いています) とでもして、pg1.htm 自身に?以降のパラメータの処理として読み込ませる処理をさせたらどうでしょうか

smwithdm
質問者

補足

やはりそういう手しかないのですかね? 他の方法はないのでしょうか?

関連するQ&A