2007年08月12日

クロスドメイン問題を回避する

   このエントリーをはてなブックマークに追加 Clip to Evernote
クロスドメイン問題についていろいろ調べてみました。
解決方法がいくつかあることが分かりました。

1. プロキシー用CGIを作成

2. FLASHの機能を利用

3. dojo というフレームワークを利用
 ただし、利用したいサービスが JSONを返す必要あり。

4. JSONP を利用
 これは、サービス提供側に .js を配置する必要あり。

5. drk7.jpのxml2json という外部サービスを利用

で、今回は、1 の「プロキシーCGI」を作成することで解決。
Perlと PHPしか動かないということなので、perl を使う。
perlってほとんど知らないので、10数行のコードを書くのにもえらい苦労した。

JavaScriptのほうは、JKLというライブラリを利用。
このライブラリの中の jkl-hina.js というテンプレート展開機能は、とても強力ですね。  

Posted by gushwell at 15:53Comments(0)TrackBack(0)

2007年08月01日

別サイトにあるJavaScriptを読み込み、実行する方法

   このエントリーをはてなブックマークに追加 Clip to Evernote
別サイトにあるJavaScriptを読み込み、実行する方法。

たとえば、サイト gushwell.comに 以下のJavaScriptを設置する。

document.getElementById("field").innerHTML = "おはよう";

このjs ファイルを、以下のHTMLをブラウザで表示すれば、
”おはよう”
という文字列が表示される。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
window.onload = function(){
var s = document.getElementsByTagName("head")[0].appendChild(document.createElement("script"));
s.type = "text/javascript";
s.charset = "utf-8";
s.src = "http://gushwell.com/test/sample.js";
}
</head>
<body>
<div id="field"></div>
</body>

へー、面白いですね。
このJavaScriptを動的に変えてやれば、「こんにちわ」でも「こんばんわ」でも、その他どんなHTMLでも表示できるわけだ。  
Posted by gushwell at 23:57Comments(2)TrackBack(0)

2007年07月27日

JSON

   このエントリーをはてなブックマークに追加 Clip to Evernote
個人的な興味で、JavaScriptでXMLHTTPRequest を使ったコードを書いてみたのだが、クロスドメインの問題で、上手く動作しない。

そもそも、Webアプリケーション作成の知識が少ないため、クロスドメインという用語すらも知らなかったくらいだから、解決の糸口がなかなかつかめなかった。

やっと、たどり着いたのが dojo というフレームワーク。
でも、サーバーから取得するデータは XMLではなく、JSON という形式でないと利用できないみたい。

JSON この名前は知っていたが、具体的にどんなものか知らなかった。

http://d.hatena.ne.jp/brazil/20050915/1126709945

によれば、JSON(JavaScript Object Notation)は、軽量のデータ交換フォーマットで、言語に依存しないものということだ。

ということは、C#でも使えるってことだな。

XMLよりは軽量そうだけれど、本当にそうなのかな?
直感的にはそう思うけど、属性がたくさんある場合はどうだろうか?

軽量っていうよりは、JavaScriptでの扱いやすさってのが一番のメリットだな。

  
Posted by gushwell at 09:06Comments(2)TrackBack(0)