2013年2月23日土曜日

javascriptでiframeの高さを取得する

iframeで呼び出すページの高さを取得し、親ページ側でiframeのheightを最適化します。

実現にはいろいろな方法がありますが、この方法はiframeと親ページの両方にスクリプトを設置するやり方になります。クロスドメインで使えます。

まずiframe側に設置するスクリプト。
#containerの高さを取得して親ページに数値を渡します。

<script type="text/javascript">
window.addEventListener("load", postSize, false);
function postSize(e){
    var target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined);
    if (typeof target != "undefined" && document.body.scrollHeight)
        target.postMessage(document.getElementById("container").scrollHeight, "*");
}
</script>



続いて親ページ側のスクリプト。
iframeから数値を受け取って高さを指定します。

<script type="text/javascript">
try { window.addEventListener("message", receiveSize, false); } 
catch(e) { window.attachEvent("onmessage", receiveSize); }

var rcnt = 0, new_height = 0;
function receiveSize(e) {
    new_height = Number(e.data)+30;
    document.getElementById("target_iframe").style.height = new_height + "px";
}
</script>


以上です。

参考にさせてもらったページはあったんですが、失念してしまいました。

ie6と7だけ効くお手軽cssハック

/margin-top:-10px;

こんな感じで頭にスラッシュを入れるだけです。便利。

こちらにcssハックが一覧でまとめられていて見やすいです。
http://www.webcreatorbox.com/tech/css-hack-list/

2013年2月22日金曜日

ie7でliに隙間ができるのを解消する


<li><a href="http://kawama.jp/"><div>text text text</div></a></li>
<li><a href="http://kawama.jp/"><div>text text text</div></a></li>
<li><a href="http://kawama.jp/"><div>text text text</div></a></li>


こんなリストがあって、ie7のみ下に隙間ができてしまっていました。

vertical-align: bottom;

を適用することで解決しました。

このへんのページを参考にさせてもらいました。
http://nrhr.net/diary/1121/
http://webdesignrecipes.com/css-selectors-and-properties-with-ie7/

2013年2月16日土曜日

mysqlでランダムな10桁の文字列を作る

select substring(md5(rand()), 1 , 10)

こんな感じで。
もちろんユニークにはならないです。

2013年2月15日金曜日

[Oracle] ROW_NUMBERでグループごとに連番を割り当てる

ROW_NUMBERを使うとグループごとに連番の割り当てが可能です。

参考ページはこちら。
http://blog.livedoor.jp/akf0/archives/51421581.html

便利です。

2013年2月13日水曜日

Oracleの隠し関数「wm_concat」

Oracleに「wm_concat」という関数があることを知りました。隠し関数だそうです。

使い方はこのあたりを参考にさせていただきました。
http://blog.livedoor.jp/dd0125/archives/381992.html

上記の記事からそのまま抜粋させていただきます。

テーブル名: HOGE
ID STR
1 A
1 B
1 C
2 C
2 D

というデータがあった場合、

SELECT ID , wmsys.wm_concat(STR) AS STR
FROM HOGE
GROUP BY ID

とSQLを打つと、

ID STR
1 A,B,C
2 C,D

と返ってくる


この関数を使えば、SQLで出来ることがかなり幅が広がると思います。

2013年2月6日水曜日

TCPDFでPDF出力

TCPDFというのをつかってみました。

こちらなどを参考にさせてもらいました。
http://log.noiretaya.com/44

レイアウトはhtmlも使えるし、関数を使って画像を配置したり罫線を引いたりすることもできます。

htmlのサポートはかなり貧弱です。その点はmPDFのほうが優れています。

まだあまり使い込んではいませんが、ライブラリごとに特徴があるので、よく吟味して使うといいと思います。

しかしPDFの出力もなかなか大変ですね。