2005年08月29日

nicky! ネタバレ機能カスタマイズ2

8/26の「nicky! ネタバレ機能カスタマイズ」の修正版です。
コメントにてご指摘いただいた部分のミス修正しました。8/29日中にこの記事のソースを利用された方は修正をお願いします。

以下、修正&追加内容の概要。
1.FireFoxで「続きを読む」をクリックした際にページトップに移動するバグを修正。
2.「続きを読む」→「閉じる」→「続きを読む」と、同一記事を2回以上開閉した際に表示がおかしくなるバグを修正。
3.WinIEだと「閉じる」ボタンをつけていなかった記事にも「閉じる」ボタン追加

【カスタマイズ方法】
1)タグ入力支援にネタバレ/長文ボタンを追加するの解説に従って実装。

2)nicky.cgi?editinputの画面のひとつめの枠内の、function neta_link()の中身を下記のように書き換える。
function neta_link(){
 gettmstr();
 var s1='<a href="#' + tmstr + '_next" onclick="sfield_view(' +
 "'"+tmstr+"'"+');return false;" id="' + tmstr +
 '_next">続きを読む</a><div id="'+tmstr+'" class="sfield">';
 enclose(s1, '<div style="text-align:right">[<a href="#' + 
  tmstr + '_next" onclick="sfield_view('+
  "'"+tmstr+"'"+');">閉じる</a>]</div></div>');
}

3)タグ入力支援にネタバレ/長文ボタンを追加するの3にあるコード部分を、下記のように書き換える。

<input type="button" value="続きを読む(リンク)" 
onclick="neta_link();return false;">

4)タグ入力支援にネタバレ/長文ボタンを追加するの5にあるコード部分の、<script type="text/JavaScript">〜</script>の部分を、下記のように書き換える。
8/30追記:11さんが公開してらっしゃる開発の
function sfield_view(id){
 if( document.getElementById(id).style.display != "block" ){
  if (document.getElementById(id+'_next')) {
   document.getElementById(id+'_next').style.display="none";
  }
  document.getElementById(id).style.display="block";
  if (document.getElementById(id).innerHTML) {
   Html = document.getElementById(id).innerHTML;
   if (! Html.match(/\\[.*\?閉じる.*\?\\]/)) {
    document.getElementById(id).innerHTML = Html + '<div style="text-align:right">[<a href="#' + 
     id + '_next" onclick="sfield_view(' + "'" + id + "'" + ');">閉じる</a>]</div>';
   }
  }
 }else{
  if (document.getElementById(id).innerHTML) {
   document.getElementById(id).innerHTML = Html;
  }
  if (document.getElementById(id+'_next')) {
   document.getElementById(id+'_next').style.display="inline";
  }
  document.getElementById(id).style.display="none";
 }
}

以上です。

1については、元のスクリプト同様、ブラウザによっては挟み込みが正常に機能しません。動作確認は特にしていませんが、大きい変更ではないのでもとのスクリプトに準ずるはず。
2,3はWindows+IE/Firefox/Netscape、Mac+IE/Safariのそれぞれ最新版にて確認済。3の機能はWindows+Firefox/Netscapeでは閉じるボタンが出ませんが、エラーも出ないので特に問題はないかと。8/30追記: 修正したのでFirefox/Netscapeでも閉じるボタンが出せるようになったみたいです。
posted by 文月夕 at 18:32| Comment(3) | TrackBack(1) | web技 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんにちは。SNRと申します。
閉じるボタンカスタマイズ使わせて頂きました。

修正版も早速入れてみたのですが、上手くいかないので見てみたところ
&lt;input type='button' value='続きを読む(リンク)'
onclick='neta_link();return false;'>
の部分がひとつめでfunction neta_link_long(){ としているのでここも
&lt;input type='button' value='続きを読む(リンク)'
onclick='neta_link_long();return false;'>
としないと動きませんでしたのでご報告します。

それから修正前の記事へのリンクとトラックバックさせて頂きましたが
トップページとnickyへリンクをしておくべきでした。気付かなくて大変失礼しました。
何か問題ありましたらご連絡頂けると助かります。
Posted by SNR at 2005年08月29日 20:57
あああ、プレビューで表示されていたので安心していたらタグ見えませんね。
訳わからない書き込みですみません。削除しておいて下さいませ〜
Posted by SNR at 2005年08月29日 20:59
>SNRさま
こんにちは。コメント&ミスのご指摘ありがとうございます。さっそく問題の箇所を修正いたしました。(以前のエントリとの整合性から、 neta_link() のほうで統一いたしました)
いただいたコメントも、タグが見えるように修正させていただきました。

それから、リンクに関してはnickyやサイトトップへのリンクは特に必要ありませんので、お気遣いなく。
Posted by 文月 at 2005年08月29日 22:31
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

Nickyカスタマイズ案その3
Excerpt: # 8/26 noscript時の表示不具合、対応しました
Weblog: SILIKAGEL
Tracked: 2005-08-30 01:10

PR

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。