プロが教える店舗&オフィスのセキュリティ対策術

Ajax非同期通信、例えばJQueryの以下の様にyour-web-siteをページ内に取り込んだ場合、cssやjavascriptのパスが相対パスで指定されているのが原因で正しく表示されない場合があります。通常のhtmlで静的に取り込む場合は<iframe>で取り込むか、<base href="...">などを用いて相対パスを絶対パスに変換するのですが、Ajaxで動的に取り込む場合のうまい方法がわかりません。
よいアイデアや方法があればご教示ください。

--- javascript----
$(function (){
$("#a").load("http://your-web-site/");
});
---- html --------
<div id="a"></div>
------------------

A 回答 (3件)

html内にinsertするまえに、自分でDOMで書き直すしかないと思います。

うまい方法はないんじゃないかなあ。私が知らないだけかもしれないので自信無しですが。
あと、読み込む中にcssやjavascriptがあったとするとそれは読み込んだ部分だけじゃなくてドキュメント全体にかかりますけど。そういうわけで、自分が自由にならない「あらかじめ書かれたhtml」を動的に読み込むのはあまり普通ではない気がします。
    • good
    • 0

回答じゃないんですが、もし自分が管理していない外部のサイトを


自分のサイトに取り組みたいというのならそれは様々な問題が
発生しうるのでやめた方が無難だと思います。

これはフレームなどの直リンクの場合と同様ですね。

http://ja.wikipedia.org/wiki/%E7%9B%B4%E3%83%AA% …
    • good
    • 0

JSONPとかなら・・・



参考URL:http://fnya.cocolog-nifty.com/blog/2006/12/ajax_ …
    • good
    • 0

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