PROGRAMMING
javascript
- ページャーを作る(簡易版)
- ページャーを作る 4/4
(クロスブラウザ対策)
(ページャー表示用メソッド)
(ページャーの使い方) - ページャーを作る 3/4
(イベント登録) - ページャーを作る 2/4
(スタイルの設定) - ページャーを作る 1/4
(ページャー用関数を準備)
(各要素を生成) - 自作カレンダーを作る 6/6
(11.~14.各種メソッド)
(15.簡単な使い方) - 自作カレンダーを作る 5/6
(09.祝休日の判定)
(10.閏年の判定) - 自作カレンダーを作る 4/6
(08.イベントの設定) - 自作カレンダーを作る 3/6
(07.スタイルの設定) - 自作カレンダーを作る 2/6
(05.カレンダーのマスのみ作成)
(06.各マスへ年月・日付を埋め込み) - 自作カレンダーを作る 1/6
(01.カレンダーの基を準備)
(02.各月の日数や年月日の区切り文字)
(03.前月・次月指定時の処理)
(04.前月・次月部分の年月を算出) - JS-Image-Resizerを使って画像を高画質で縮小
- ファイルを作成しローカルに保存
- モーダルウィンドウをクラス化
- ストップウォッチを作る
- XMLHttpRequest Lebel2を試してみる
- jQuery:Tableで親・子・兄弟要素を取得
- 文字列をセパレータ文字で分割し配列で返す関数
- forループのカウンタを使用している関数の定義
- クロージャの使いどころ
- JSONPでクロスドメイン
- AjaxでJSON形式のデータを扱う
- jsファイルからjsファイルを呼び出す
- jQuery:モーダルウィンドウを作ってみる
CSS
- フォルダ構成をCSSで見やすくする
- シンタックスハイライトPrismのカスタマイズ
- リスト(li)を中央に配置する
- ブロックレベル要素全体をリンクにする
- 実践と点線の交わり部分のギザギザをすっきりさせる
PHP
Java
- IntelliJ.Gradle.JavaFX(6) プラグイン org.beryx.jlink を使ってみる
- IntelliJ.Gradle.JavaFX(5) NSISでインストーラーを作る
- IntelliJ.Gradle.JavaFX(4) exewrapで実行可能jarをexe化する
- IntelliJ.Gradle.JavaFX(3) Jlink でカスタム JRE を作る
- IntelliJ.Gradle.JavaFX(2) すべての依存対象を含んだ Fatjar を作る
- IntelliJ.Gradle.JavaFX(1) アプリケーションを作る
- javaのコンパイルと実行
- イメージを回転する
- Exif情報を簡単に取得できるライブラリ
- 高画質で画像縮小
- JDBCによるデータベース操作
JSONPでクロスドメイン
JSONは同一ドメイン内でなければデータの送受信ができない。
場合によってはドメインを超えてデータをやり取りしたいこともある。
その仕組み?としてJSONPがあるので、そのお勉強。
JSONPとは何ぞや
JSONPもJSONと同様にデータの記述言語だと思っていました。が!JSONPはjavascriptそのものでした。
1. 呼び出す側のjavascriptにJSONデータを処理する関数を定義する。
2. 呼び出されるjavascriptファイルに、その関数の引数としてJSONデータを記述する。
3. javascriptファイルの読み込み順を「関数定義」→「関数実行」にする。
<script>タグのsrcは別ドメインでも特に問題無いので結果的にクロスドメインになるのでした。
JSONPとは1~3のような手順で、クロスドメインでJSONデータを使用する方法のことでした。
call.js
var fnc = function(val){
alert(val[2].name);
};
data.js
fnc([{"name":"田中", "age":25, "sex":"男"},
{"name":"佐藤", "age":42, "sex":"男"},
{"name":"鈴木", "age":32, "sex":"女"}]);
<script src="call.js"></script>
<script src="http://XXXXX/data.js"></script>
このようにすると、javascriptは上から順番に読まれ、call.js内で定義された関数が
引数にJSONデータをセットしたdata.js内で実行され「鈴木」が表示されることになります。
この単純な仕組みを使ってクロスドメインを実現しているのでした。
読み込むスクリプト(JSONP)のタグを動的に生成する
利用したいJSONデータが記述されたファイルのスクリプトタグをHTMLファイルに記述するのは、
汎用性に乏しいものになってしまいます。
そこでDOMを使って動的にスクリプトタグを生成するようにします。
<script src="call.js"></script>
<!--<script src="http://xxxxx/data.js"></script>-->
// 関数の定義
var fnc = function(val){
alert(val[1].name + ":" + val[1].age + ":" + val[1].sex);
};
// スクリプトが生成される → 関数が実行される
var script = document.createElement("script");
script.src = "http://xxxxx/data.js";
var head = document.getElementsByTagName("head");
head[0].appendChild(script);
関数の定義と関数の実行の順番がきちんと守られているので、「佐藤:42:男」がalertされました。