Googleガジェットで親ページの修正はできません


てっく煮ブログ - はてなダイアリーで JavaScript evalを読んで,休日中に試してみたことのまとめ。


僕はGoogleガジェットでevalを使って好きなスクリプトを実行できるなら,例えばprototype.jsなんかをevalで評価すればはてなページ全体をDOMとかで操作できるんじゃないかと考えたわけです。図にするとこんな感じ。



結論から先に言うと無理でした。Googleガジェットの仕様上,ガジェット内から親ページに対するDOMなどの操作はできないみたいです。iframeで読み込まれたフレーム部分と,はてなダイアリーのURLは異なるので,クロスドメインということになって,スクリプトの実行が禁止されているのでしょうか?


ガジェットをiframeで展開するのではなく,ページの一部として展開した場合(html-inlineというタイプでガジェットを作る)には親ページの修正ができるようだけど,残念ながらこれはiGoogle内でしか使用できないとのこと。


Google ガジェット - API 開発者ガイドの中で以下のように説明されている。

ガジェットで親ページを変更する必要がある場合は、html-inline を使用してください。 機能が制限されるため、それ以外の用途では使用しないでください。 html-inline ガジェットは、他のGoogle 関連サービスでは使用できず、コンテンツ ディレクトリに含めることもできません。

Google ガジェットAPI − 基本事項


ちなみに,ページ左上部にあるmasutaro JS Runtime in Hatenaと表示されているflashで作ってあるガジェットが試みの残骸です。(2007/10/13 削除)


iframeで展開されたガジェットから親ページに対して何らかの操作をしようとすると,permission denied的なエラーが出ます。
ちなみに,Googleガジェット内でprototype.jsを実行することは当然可能ですた。つまりiframeのページ内ではどんなスクリプトでも実行できるみたい。まぁこれは,てっく煮ブログさんの記事ですでに書かれていることですね。


てか,僕が考えたようなことができるなら,僕が思いつく前にみんなやってるよな〜。