こんばんは。マダム でんでん♪でございます。今回はココログ限定の話題です。
昨日からブログの設定をいじりまわしてます。「暴想」さんのところからいただいてきたスクリプトがとても便利で、今日もいくつか試して取り付けてみました。
昨日は、「ココログ最強カレンダー」と「自分のココログを全文検索するブログパーツ」の2つを取り付けたわけですが、今日は
の3つのスクリプトを取り付けてみました。
最初の2つ、「月別バックナンバーをプルダウンメニューにするJavaScript」と「カテゴリ別バックナンバーをプルダウンメニューにするJavaScrip」は、名前通りのスクリプトでココログのサイドバーに表示される「月別バックナンバー」と「カテゴリー」の一覧をプルダウンメニューにしてくれます。
そして、「タイトルと概要を表示するJavaScript」。これ、とっても便利です。ココログってバックナンバーのタイトル一覧を表示する機能がないんですよね。だから、カテゴリとか月別のバックナンバーを開くと、本文も含めてズラズラと表示されて目的の記事を見つけにくくてとても不便だなと思ってました。それが!!このスクリプトを使うと、ページに表示されている記事のタイトル一覧を概要付きで表示できるんです。
実際の動作は、このブログの右サイドバーにあるカレンダーの下に表示されている「タイトル一覧モード」のリンクをクリックしてみてください。タイトルの一覧が表示されましたね?ページ上部の「タイトルと概要を表示」をクリックするとタイトルとともに記事の概要が表示されます。元のズラズラ表示に戻すには、「元に戻す」をクリックすればOK!
と素晴らしいのですが。。。このスクリプトを取り付けて、@nifty 投票で作ったアンケートを使うと、IEで見たときにアンケートが表示されなくなってしまうという問題が。。。どうやら、IEの場合、innerHTMLにscriptを代入しても評価されず無視される(参考: 「innerHTMLでscriptする」というのが影響しているらしく。「innerHTMLでscriptする」の記述を参考にいろいろ試したものの解決せず。仕方なく、「タイトルと概要を表示するJavaScript」本体(cocolog_archive_extention.js)を独自にカスタマイズすることにしました。
まずは、cocolog_archive_extention.jsのcocolog_archive_extention関数を変更。この関数はページが読み込まれた後に必ず呼び出されるようになっています。で、タイトル表示、タイトルと概要表示の場合で処理を振り分けているのですが、通常表示の場合も本文のinnerHTMLにメニュリンクを追加する処理をしています。このinnerHTMLの書き換えが行われた後、@nifty 投票が動作しなくなるため、innerHTMLを書き換えている部分をコメントアウト。
このままでは、タイトル表示、タイトルと概要表示のモードにした後、「元に戻す」をクリックして元のズラズラ表示に戻したときにやっぱりアンケートが表示されなくなってしまいます。そこで、show_title関数のメニューリンクを追加している部分を修正して、「元に戻す」をクリックしたときの動作を変更して元々のページをリロードするようにしました。
diffはこんな感じ。
20c20
< content.innerHTML = '<div id="show_changer_botton" style="text-align:center; font-size: smaller;"><a href="javascript:show_title();" style="text-decoration: none;">タイトルのみ表示</a>/<a href="javascript:show_title( new Boolean(true) )" style="text-decoration: none;">タイトルと概要を表示</a></div>' + content.innerHTML;
---
> // content.innerHTML = '<div id="show_changer_botton" style="text-align:center; font-size: smaller;"><a href="javascript:show_title();" style="text-decoration: none;">タイトルのみ表示</a>/<a href="javascript:show_title( new Boolean(true) )" style="text-decoration: none;">タイトルと概要を表示</a></div>' + content.innerHTML;
56c56
< menu_str = '<a href="javascript:show_original();" style="text-decoration: none;">元に戻す</a>/<a href="javascript:show_title();" style="text-decoration: none;">タイトルのみ表示</a>';
---
> menu_str = '<a href="javascript:location.replace(\'http://'+location.host+location.pathname+'\');" style="text-decoration: none;">元に戻す</a>/<a href="javascript:show_title();" style="text-decoration: none;">タイトルのみ表示</a>';
59c59
< menu_str = '<a href="javascript:show_original();" style="text-decoration: none;">元に戻す</a>/<a href="javascript:show_title( new Boolean(true) )" style="text-decoration: none;">タイトルと概要を表示</a>';
---
> menu_str = '<a href="javascript:location.replace(\'http://'+location.host+location.pathname+'\');" style="text-decoration: none;">元に戻す</a>/<a href="javascript:show_title( new Boolean(true) )" style="text-decoration: none;">タイトルと概要を表示</a>';
ただ、この修正を行うと元のスクリプトでは、すべてのページに表示されていたメニューリンクが表示されなくなってしまいます。そこで、ココログのマイリストでリンクリストを作成して、タイトルが「タイトル一覧モード」、URLが"javascript:show_title();"のリンクを作成して、左サイドバーに表示されるように設定しました(このあたりの詳細はココログのヘルプを参照してください)。
とりあえず、こんな感じで設定したのが今の状態です。IEとわたしが普段使っているFirefoxで動作することは確認できました。が、もうちょっとスマートな解決方法ないでしょうか。。。
あと、たくさんJavaScriptを貼り付けたおかげで、ページの読込みがちょっともっさりした感じになってしまいました。しばらく使ってみて、いらなさそうなのは様子を見て外してしまうかも。
なんだかこのところ、コーヒー屋さんのブログというより、IT系のブログみたいになってしまってますが、コーヒーの方もちょっとずつ研究はしてますよ~♪
← 生暖かい目でクリック!!
最近のコメント