Harukiya Archives

2008/10/16

category /


2007/03/05

category / javascript

えー、話を蒸し返そうつうのじゃありませんが、ちょっとした発見があったのでメモしときます。FC2 ブログには、コメント内の URI をオートリンクする設定があります。これを「はい」にすると URI 文字列はリンクに置き換えられ、target="_blank" がもれなく付いてくる。それを外そうと javascript でゴチャゴチャやってきた事をプチアプリとして紹介しよーかなーと思ったのですけど、本質の解決ではないのでボツにしました。ちなみに最も良いと思われる解決方法は FC2 本丸へ「修正の要望を出し、待つ」ことです。で。そのボツスクリプトはとても簡単な構造で「今年は javascript をナニしてやるぜ」という人の取っ掛かりになるかもと思い直し、ここに発表するしだいなのであります(長い前置き)。

  1. var link, i;
  2. for ( i=0; link=document.links[i]; i++ )
  3.  if ( link.target=="_blank" ) link.target = "_top";

コレを適当な名前( blacan.js とか )でファイルに保存し、サーバにアップ、テンプレ HTML 編集で <!--/rcomment--> よりうしろでリンクします。

  1. 前略
  2. <!--/rcomment-->
  3. <script type="text/javascript" src="./file/blacan.js"></script>
  4. 後略

リロードしておしまい。

スクリプトの 1行目は前準備(お約束)が書かれています。var とは「これから変数を宣言します」の意味で、その後の link, i が製作者(ワシね)が設定した変数名になります。それぞれの変数は、リンクの配列から個別に取り出したリンクへの参照/ループのカウンタ、として使われます(解らない言葉が出てきてますか?副読本には GoogleJavaScriptをはじめましょのバックナンバーがオススメ)。さて、その次の 2行がメインの処理(つまり本文)なわけですが

HTML 文章のリンク群( document.links )からひとつずつ( for(〜) )リンクを変数( link )に取り出して、もし( if )、その変数の target 属性が "_blank" だったら、 "_top" に置き換えよ。

ね?(って言われても・・・)。自分のやりたいことをいったん文章にして、それをブラウザが解るように翻訳するってのが「javascript を書く」ことの本質だったのです(「何を今さら」とお思いでしょうが、プログラミング言語っていうじゃないですか)。ということはですよ、スクリプトを書くには、まず元の文章(自分のやりたいこと)を客観的、論理的に書くことがができるという前提が必要なのです(ブレたりボカシたりダジャレを含めずに、です。また、びみょーに耳が痛い)。たぶん、そこさえクリアできれば将来的には翻訳( =javascript化 )する部分はコンピタがやるようになるのじゃないかな。正確な表現と文法を使うということは、それだけ機械化がしやすいともいえるはず・・・。とまあ、こんなことを今日発見しました。

やはり、何事においてもまず設計(デザイン)するということが重要な部分を占めていて、そこだけは人間が考えなければならない最後の仕事なのかもしれません。


writeback

  1. マス : そういう意味じゃ、HTML を書く CSS を書くってのも、まったく同じことなのですよ。-05日21時
  2. cyaimi : >ブレたりボカシたりダジャレを含めずに、です
    嗚呼、ボケが多い私にはやっぱりじゃばすくりぷとは敷居が高いのか、と嘆きつつ、そういえば私もCSSを書いたり読んだりする時には文章のように読んで理解・解釈しているな、じゃできるかも?とちょっと淡い期待も持てた次第です。-05日22時
  3. マス : きれいなコードって、まるで詩のようですよね(心配ありません、平熱です)。
    どのへんが「敷居高かったかなー」と、じぶんを振り返ってみて今日の日記を書きました。
    ふろくつきですよ。-06日21時
  4.  


< 標準単焦点写真生活【9】 | アンチョコ > | 表紙へ戻る | 探す | 案内


ホームページ アフィリエイト レンタルサーバー FC2ブログ キャッシング