こんにちは、伊藤です。
iGoogle ガジェットで standard mode を使うためのライブラリを作ってみました。ガジェットのクライアントエリア全体を覆う
IFRAME を作り、その中にコンテンツを流し込むというもので、 iGoogle API のいくつかの機能 (
gadgets.io,
gadgets.Prefs, gadgets.window など) もその IFRAME 内から呼び出せます。
使い方は簡単で、まず最初にガジェットのコンテンツ全体を id="_std_content" な隠し DIV 内に入れます。もしスクリプトがある
場合は、二重に実行されるのを防ぐため if(window.StdIG) { ... } で囲います。
<div id="_std_content" style="display:none;">
<div>Hello Standard World!</div>
<script type="text/javascript">
if(window.StdIG) {
document.open();
document.write(document.compatMode);
document.close();
}
</script>
</div>
あとは、 std-ig.js を読み込むだけです。
<script type="text/javascript">
var url = gadgets.io.getProxyUrl('
http://std-ig.googlecode.com/svn/
trunk/std-ig.js');
document.open();
document.write('<scr'+'ipt src="' + url + '"></scr' + 'ipt>');
document.close();
</script>
IFrame 内で呼び出せる API などはプロジェクトページに記載しています。
http://code.google.com/p/std-ig/
quirks mode の変な CSS の挙動に辟易していたら、ぜひお試しください。ご意見・ご感想などもお待ちしています。