2011/10/26

thickboxで開いたウィンドウにはGETパラメータを渡せない

メンテナンスされなくなり、オワコンとなりつつある(?)thickbox。
そんなthickboxの公式では他のモーダルビュー用ライブラリをおすすめしている。

けど、まだまだthickbox人気はあるようで業務で使うこともある。
そんなときに困ったのが、thickboxで開いたウィンドウにはGETパラメータを渡せない
という謎の仕様があった。
これはどう考えてもバグなんだけど、ググったらいくつか対策があった。
ただ、ライブラリのソースに手を加えて、「どや?」って感じで修正されるのは危険な気もするので、値をどうしても渡したい場合、self.parentなどを使ってjsで渡してやった方が良いと思う。


var selector = "#hoge",

    context = self.parent.document;


// 「親画面のid="hoge"」から
// 「thickbox内のid="hoge"( thickboxで開くウィンドウ)」に値を渡す。
$("thickboxのiframeのid").contents()

    .find(selector).val($(selector).val());

// 「thickbox内のid="hoge"」から「親画面のid="hoge"」に値を渡す。 $(selector, context).val($(selector).val());