CrossOver – JavaScriptでクロスドメイン
JavaScriptでは、セキュリティ上の制限により、違うドメインのXMLを読み込むことができません。
一方Flashでは、crossdomain.xmlにより許可されたドメインからはXMLの取得が可能です。
そこで、FlashのExternalInterfaceを利用して、JavaScript側で指定したURLからFlashでXMLを取得して、その結果をJavaScriptに返すだけの小さなswfファイルを作成しましたので公開します。
ダウンロード
パッケージ内容
PHPやCGIが不要です!
- CrossOver.swf
- CrossOver.js
- swfobject.js
利用方法
</body>の直前あたりに以下のソースを貼り付けてください。
パスは環境にあわせて修正願います。
<script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript" src="CrossOver.js"></script>
ボタンクリックなどのイベントでloadCrossOver()という関数を実行してください。
引数には、コールバック関数名及びXMLのURLを渡してください。
(コールバック関数名はダブルクォーテーション等で囲む必要があります。)
また、XMLリクエストが成功した際に実行されるコールバック関数を定義してください。
詳細は、サンプルページなどもご参照ください。
// XMLHttpリクエストをFlashにしてもらう関数
oButton.onClick = function{
loadCrossOver( 'callback', 'http://example.com/feed.xml' );
}
// 上記関数の第一引数と同じ名前の関数を定義
function callback( XMLString ){
.......... // XMLに対する処理
}
コールバック関数の引数には、取得したXMLのString型データが渡されますので、XML.ObjTree等と併用することで、オブジェクトとして利用可能です。
ライセンス
MITライセンスとします。
ただし、気に入っていただけた方からの寄付は歓迎します。
ご注意
crossdomain.xmlで許可されていないサイトのXMLにはアクセスできません。
他の手を考えましょう。
関連記事
- 住所からGoogle MAPに変換する(JavaScript編)
- bit.lyにセキュリティホール?
- XML文字列をDOMエレメントに変換する
- WordPressのプラグインで任意のURLのページを追加する
- JavaScript でカウントダウン
お問い合わせ
システム開発に関するお問い合わせをお待ちしています。
お急ぎの方は、Twitterでどうぞ。
もちろん、このページへのコメントも大歓迎です!
XML文字列をDOMエレメントに変換する
先日公開したJavaScriptでクロスドメインでのXMLアクセスを可能にするライブラリ「CrossOver」は、コールバック関数への引数がXML形式のテキストデータです。
DOMオブジェクトで戻せば余計な…
[...] 配布ページ [...]
[...] ロスドメインでXML読み込みをjavascriptで実現させることになり、フラッシュ経由で実現するcrossover.jsを使わせていただきました。 ただ、onclickイベントでは読み込んでくれるのですが、ペー [...]