Harukiya Archives

2008/10/13

category /


2005/01/16

category / javascript

広報部長の働きによりコメント欄のURL(らしきもの)にリンクを張るが某掲示板で密かに話題沸騰(どっちなんだ?)である。

あれは sさん(バレバレw)が言及しているように

掲載されているスクリプトでは、URLの終了を判断できません。
URLに続けて半角英数文字、半角記号があると誤動作します。

という危険な(といっても、有効でないアドレスに飛んで404を出す程度)スクリプトだ。とはいえ需要があることもわかったのでヴァージョンアップしてみる。

脆弱性は(/ ̄▽ ̄)/オイトイテ・・・と。 ながーいURLなんかを張ったさいレイアウトが崩れるとか、アドレスだけじゃどこに飛ばされるのか不安という方もいると思う。そこで普通のリンクのようにリンク先を任意の文字列で置き換えられるように修正してみる。

javascript

  1. <!--comment-->
  2. <span id="comment_text<%comment_no>"><%comment_body></span>
  3. <script type="text/javascript">
  4. <!--
  5. function autoLink() {
  6.  var objComment = document.getElementById( 'comment_text<%comment_no>' );
  7.  if ( !objComment ) return;
  8.  var s = sComment.innerHTML;
  9.  s = s.replace(/(http:\/\/[!#-9A-~\.?=;:]+)/ig, "<a href='$1'>$1</a>");
  10.  sComment.innerHTML = s.replace(/(<a.+>).+(<\/a>)\s\[(.+)\]/g, "$1$3$2");
  11. }
  12. autoLink();
  13. //-->
  14. </script>
  15. <!--/comment-->
  1. URLだけが書き込まれた場合は、今まで通りURLそのものがリンク文字になります。
  2. URL+半角スペース+[リンクにしたい文字列]の書式の場合は”[””]”半角カッコの中の文字列にリンクが張られます。半角カッコは置き換えられた場合は消去。
  3. スクリプトオフの場合の表示は以下のようになります。
    http://www.yahoo.co.jp/ [Yahoo!]

ま、あんまり細かいルールを要求すると、コメンテーターもわずらわしいだろうから、管理人だけが知っていて読む人を驚かすってのもありかも。


writeback

  1. マス
    google
    http://www.google.co.jp/webhp?tab=iw&q=&ie=UTF-8&oe=UTF-8&hl=ja
    Yahoo!
    http://www.yahoo.co.jp/

    でも最近使うのは http://a9.com/-/search/home.jsp?nc=1 [A9] が多いよ。
    -16日16時
  2. 広報部長 :   社長(所長?)!  新製品、バリバリ開発して下さいよっっ
    私はちょっと在庫品さばかせてもらいますから。-16日17時
  3. マス : 今回(wは、歌声喫茶「春木屋」のマスターって設定なんですが。-16日18時
  4. ユーザーS : javascriptのmasterかと思ってました-16日19時
  5. マス : 医者にとめられてますからね。ヒジに針を打てば、もう2〜3個は書けますよ。-16日20時
  6. マス : s.replace(/(<.+>).+\s\[(.+)\]/g, "$1$2</a>");
    2度目の変換はこの方がスマートですな。-19日20時
  7.  


< カテゴリ別アイコンとか | 素材 > | 表紙へ戻る | 探す | 案内


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