Blogger にログインした状態でアクセスしたときだけ処理を実行する方法

2008/02/09 | ラベル: , | このエントリーを含むはてなブックマークを表示

Blogger にログインした状態でアクセスしたときだけ表示する方法の応用。

クイックエディットアイコンは以下の span 要素の内側にある。

<span class='widget-item-control'>
  <span class='item-control blog-admin'></span>
</span>

ログイン中だと内側の span 要素の display 属性が inline になり、ログインしていないときは none になっている。この状態をチェックすることで、ログインした状態でアクセスしたときだけ処理を実行することができる。

上記の要素には ID がないので、固有の ID をつけたものをテンプレートに直接埋め込んでおく。

<span class='widget-item-control'>
<span class='item-control blog-admin' id='hoge'></span>
</span>

次に、id='hoge' な要素の display 属性をチェックして、属性が none でないときに処理を実行するような JavaScript を書く。

<script type='text/javascript'>
function hoge() {
var element = document.getElementById('hoge'), value;
if ( window.getComputedStyle ) // Firefox, Opera
value = window.getComputedStyle(element, null).display;
if ( element.currentStyle ) // IE
value = element.currentStyle.display;
if ( value != 'none' ) {
// ここに実行したいコードを書く
}
}
</script>

getComputedStyle, currentStyle は、現在その要素に設定されているスタイルを取得するもの。

これで、ログイン中のときのみ、何らかの処理を実行させることができる。これを使って、Google Analytics で自己アクセスを除外するための Cookie を設定する方法を改良する。

詳細は次回

0 コメント: