- 締切済み
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名'); という感じの代物です。 うまく二度手間にならないようにスムーズにいく方法はないでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1>やはりそういう手しかないのですかね? 自分自身を切り換えた後に切り換える前のスクリプトから切り換えた後のページが操作できないので、 自分自身でさせるしかないように思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
ページを切り換えるスクリプトの後のスクリプトが希望するように動かないのはある意味当たり前のような気がします。 location.href="pg1.htm"; を例えば location.href="pg1.htm?page=selection&id=otherpg"; (selection は、実際には中味なので、 location.href="pg1.htm?page=" + selection + "&id=otherpg"; とでもなるのかもしれないが、直接埋め込むということで書いています) とでもして、pg1.htm 自身に?以降のパラメータの処理として読み込ませる処理をさせたらどうでしょうか
補足
やはりそういう手しかないのですかね? 他の方法はないのでしょうか?
お礼
一応、使いものになる程度にはできたのですが、その location.searchの追加分の影響で思うように動作しないのでまだまだ改良しなければいけませんが、ご指摘的ありがとうございますm(__)m