-->

2010-04-11

blogger: レイアウト: HTML の編集: タイトルの修正 part2

javascript の無名関数(ラムダ関数)の例です。


<div id='header-wrapper'>
...
</div>

<script defer='defer' type='text/javascript'>
// <![CDATA[<!--

try {(function() {
    var h1 = document.getElementsByTagName("h1");
    if (h1 && h1[0] && h1[0].className.match(/(?:^|\s)title(?:$|\s)/i))
    {
        var a = h1[0].getElementsByTagName("a");
        if (a && a[0])
        {
            var title = document.getElementsByTagName("title");
            if (title && title[0])
            {
                a[0].href = document.URL;
                a[0].innerHTML = title[0].innerHTML.replace(/</g, "&lt;").replace(/>/g, "&gt;");
            }
        }
    }
})();} catch(e) {}

//-->]]>
</script>

<div id='content-wrapper'>
...
</div> <!-- end content-wrapper -->

try{ ...処理... } catch(e) { ...エラー処理... }
処理が失敗した場合、エラー処理を実行します。
例えば alert(e) と書くと、エラー時に、なんらしかの文字が表示されます。

(function() { ...処理... })();
処理を実行します。
この場合の利用する理由は変数や関数の名前が被って欲しくないためです。

1個目の h1タグ のクラス名に title があることを確認し、その中に少なくとも1個 aタグ があることを確認し、1個目の titleタグ の中身を aタグの中身に書き込み、現在の url を aタグ の href に書き込みます。

追記: 元々の管理画面の機能を使った方が楽です。
レイアウト →
ページ要素 →
ガジェットを追加(サイドバー) →
HTML/JavaScript →
<script>~</script> をコピー&ペースト →
HTML/JavaScript をサイドバーの一番下へ移動

0 件のコメント: