外部javascriptファイルを読み込んでごにょごにょする方法
とあるWebサービスを考えていて暫く悩んだところ。いわゆる「スクリプトタグ」を貼り付けるだけで〜、的なサービスにしたかったんだけど、javascriptはクロスドメイン制限によって、異なるドメイン間で、XMLhttpRequest通信はできない。んなもんで、javascriptファイルはサービス提供側のサーバーに置いて、そのファイルを
<script type="text/javascript" src="http://xxxxxxx.com/hoge.js"></script>
のように読み込んで、そこからXMLhttpRequestを使ってPHPファイルへアクセスして情報取得すればいいんじゃないかと思ったんだけど、うまくいかない。PHPファイルを読み込んで表示はできるんだけど、PHPプログラムを実行してくれなくて、ただのテキストとしてPHPプログラムも表示してしまう。
うーむ、と悩んでふと気がついた。
これってブログパーツと一緒?
そこで一般的なブログパーツを調べてみたら、ほとんどscriptタグでPHPファイルへアクセスしている!!試しにさっきのjsを.phpに変えてみたら普通にjavascriptとして解釈されてた!!
<script type="text/javascript" src="http://xxxxxxx.com/hoge.php?id=1"></script>
ということは。わざわざXMLhttpReqestしなくても、PHPの$_GETでURL変数を取得したり、DBアクセスやらしたりすればいいんじゃないかってことに気がついた。試しにやってみたらうまく動作する!!なーんだこんな簡単だったのかぁ。
あとはjavascriptの変数に表示させたい文字列を格納して、document.writelnで表示するだけ。ちなみにこの時の注意点としては、document.writelnで表示する変数の中に、改行コードが含まれてるとエラーになってしまうとこ。なので全て1行で書くか、複数行に分ける場合は、
var data = ''; data = data + 'hoge'; data = data + 'huga';
のようにすべてが繋がるように書くこと。