【お知らせ】カレンダーPlus、ページングスクリプトの不具合修正など
以下の3種のスクリプトについて、不具合修正等を行ないました。
スクリプトをご自分のサイトにアップロードしなおしてご使用中の方は、お手数ですが新版をアップロードしなおして下さい。
当方のスクリプトをそのままご使用中の方については、変更が自動的に反映されますので、特に何もする必要はありません。
スクリプトをご自分のサイトにアップロードしなおしてご使用中の方は、お手数ですが新版をアップロードしなおして下さい。
主として、コメントでご指摘頂いた内容を元に調査・修正を行なっております。
コメントいただいた方々、大変お待たせ致しまして申し訳ありません。ありがとうございました。
コメントいただいた方々、大変お待たせ致しまして申し訳ありません。ありがとうございました。
各スクリプトの主な修正内容は以下のようになります。
■風柳亭: ココログカレンダーPlus(cocoCalendarPlus.js ver.0.01e)
■風柳亭: 【ココログ】アーカイブページに目次とページングを付加するJavaScript(cocoPView.js ver.0.07n)
■風柳亭: 【ココログ】過去記事をN件ずつさかのぼって表示するスクリプト(cocoPBack.js ver.0.03f)
■風柳亭: ココログカレンダーPlus(cocoCalendarPlus.js ver.0.01e)
- ブラウザでエラー("オブジェクトを指定して下さい"(IE)、"getPageTitle* is not defined"(Firefox)など)が発生する不具合の修正。
- 目次の日付部分の表示がおかしくなる不具合の修正。
- ブラウザでエラー("オブジェクトを指定して下さい"(IE)、"getPageTitle* is not defined"(Firefox)など)が発生する不具合の修正。
- プルダウン表示するかどうかを、月別バックナンバー/カテゴリバックナンバー毎に指定できるオプション追加(cocoPView.monthlyPullDown、cocoPView.categoryPullDown)。
- 目次の日付部分の表示がおかしくなる不具合の修正。
- ブラウザでエラー("オブジェクトを指定して下さい"(IE)、"getPageTitle* is not defined"(Firefox)など)が発生する不具合の修正。
■覚書(原因など)
記事の日付が正しく取得出来なくなったり、ブラウザでエラーが出ていたのは、記事毎についているフッタの仕様が変わったのが原因。
しばらくネットから離れていたので、いつ頃からはわからないが…コメントなどから推測すると、2010年の3月頃?
□日付部分の仕様変更
古いフッタだと、
□@niftyクリップやTwitterへの投稿ボタン追加
フッタ部分に@niftyクリップやTwitterへの投稿ボタンが付けられるようになった…のは別にいいのだけれど、問題は投稿ボタンのリンクをスクリプトで生成するようになっていること。
ところが、特に嫌なのが@niftyクリップの方で、IMG要素にonload属性が指定されており、これはinnerHTMLに設定した場合などでも実行されてしまう。一方、その中でコールされるgetPageTitle*という関数は(SCRIPT要素が反映されていないため)存在せず、その結果として、ブラウザでエラーが発生する模様。
というわけで、ココログの記事を切り張りしているようなスクリプトは要注意、かも。
記事の日付が正しく取得出来なくなったり、ブラウザでエラーが出ていたのは、記事毎についているフッタの仕様が変わったのが原因。
しばらくネットから離れていたので、いつ頃からはわからないが…コメントなどから推測すると、2010年の3月頃?
□日付部分の仕様変更
古いフッタだと、
<p class="posted">
(投稿者や日付の情報)…
だったのが、
(投稿者や日付の情報)…
<p class="posted">
<span class="post-footers"> (投稿者や日付の情報)</span>…
のように一段深くなった。<span class="post-footers"> (投稿者や日付の情報)</span>…
□@niftyクリップやTwitterへの投稿ボタン追加
フッタ部分に@niftyクリップやTwitterへの投稿ボタンが付けられるようになった…のは別にいいのだけれど、問題は投稿ボタンのリンクをスクリプトで生成するようになっていること。
◆@niftyクリップ投稿ボタンの場合
<span class="entry-footer-links-niftyclip"><script type="text/javascript">
function getPageTitle60832568() {
var pageTitle;
if (navigator.userAgent.toLowerCase().match(/msie 6\.\d/)) {
pageTitle = encodeURIComponent('思い付いた時に更新');
} else {
pageTitle = '%e6%80%9d%e3%81%84%e4%bb%98%e3%81%84%e3%81%9f%e6%99%82%e3%81%ab%e6%9b%b4%e6%96%b0';
}
return pageTitle;
}
</script>
<a href="javascript:location.href='http://clip.nifty.com/create?url='+encodeURIComponent('http://furyu.cocolog-nifty.com/blog/2010/04/post-dd5e.html')+'&title='+getPageTitle60832568();"><img onload="this.parentNode.href=eval(this.parentNode.href.match(/^javascript:location.href=(.*)$/)[1]);" src="http://clip.nifty.com/images/addclip_icn.gif" width="16" height="16" style="border:0;" alt="@niftyクリップに追加" title="@niftyクリップに追加" /></a><img src="http://api.clip.nifty.com/api/v1/image/counter/http://furyu.cocolog-nifty.com/blog/2010/04/post-dd5e.html" alt="クリップ数" />
</span>
function getPageTitle60832568() {
var pageTitle;
if (navigator.userAgent.toLowerCase().match(/msie 6\.\d/)) {
pageTitle = encodeURIComponent('思い付いた時に更新');
} else {
pageTitle = '%e6%80%9d%e3%81%84%e4%bb%98%e3%81%84%e3%81%9f%e6%99%82%e3%81%ab%e6%9b%b4%e6%96%b0';
}
return pageTitle;
}
</script>
<a href="javascript:location.href='http://clip.nifty.com/create?url='+encodeURIComponent('http://furyu.cocolog-nifty.com/blog/2010/04/post-dd5e.html')+'&title='+getPageTitle60832568();"><img onload="this.parentNode.href=eval(this.parentNode.href.match(/^javascript:location.href=(.*)$/)[1]);" src="http://clip.nifty.com/images/addclip_icn.gif" width="16" height="16" style="border:0;" alt="@niftyクリップに追加" title="@niftyクリップに追加" /></a><img src="http://api.clip.nifty.com/api/v1/image/counter/http://furyu.cocolog-nifty.com/blog/2010/04/post-dd5e.html" alt="クリップ数" />
</span>
◆Twitter投稿ボタンの場合
<span class="entry-footer-links-twitter"><script type="text/javascript">
var tweetTitle = '%e6%80%9d%e3%81%84%e4%bb%98%e3%81%84%e3%81%9f%e6%99%82%e3%81%ab%e6%9b%b4%e6%96%b0';
var tweetUrl = 'http://furyu.cocolog-nifty.com/blog/2010/04/post-dd5e.html';
var tweetLink = 'http://twitter.com/home?status='+tweetTitle + ' ' + tweetUrl;
document.write('<a href="'+tweetLink+'" target="_blank"'+' class="share-link share-link-twitter">Twitter<'+'/a>');
</script>
</span>
cocoPView.jsやcocoPBack.jsなどでは別ページの内容をを読み込んで切り張りするような箇所があるのだが、貼付内容にSCRIPT要素を含んでいても、innerHTMLへ入れたりするぶんにはSCRIPT部分は無視されるのでこれが特に悪さすることは通常はない。var tweetTitle = '%e6%80%9d%e3%81%84%e4%bb%98%e3%81%84%e3%81%9f%e6%99%82%e3%81%ab%e6%9b%b4%e6%96%b0';
var tweetUrl = 'http://furyu.cocolog-nifty.com/blog/2010/04/post-dd5e.html';
var tweetLink = 'http://twitter.com/home?status='+tweetTitle + ' ' + tweetUrl;
document.write('<a href="'+tweetLink+'" target="_blank"'+' class="share-link share-link-twitter">Twitter<'+'/a>');
</script>
</span>
ところが、特に嫌なのが@niftyクリップの方で、IMG要素にonload属性が指定されており、これはinnerHTMLに設定した場合などでも実行されてしまう。一方、その中でコールされるgetPageTitle*という関数は(SCRIPT要素が反映されていないため)存在せず、その結果として、ブラウザでエラーが発生する模様。
というわけで、ココログの記事を切り張りしているようなスクリプトは要注意、かも。
自作のものでもこれ以外にいろいろありそうだけど、対応しきれん……というか、そもそも最初から普通のリンクにしてくれればいいのに>ココログ。リンクをわざわざスクリプトで書き換え処理しているメリットが思い付かない(検索ボット対策?)。
« お詫びなど… | トップページ | 【AutoPagerize】Google 画像検索対応スクリプト更新(ver.0.01h) »
「ウェブログ・ココログ関連」カテゴリの記事
- 久しぶりの投稿がココログへの苦言というのもなんなのですが……(2019.03.20)
- ココログをTwitterカードに対応させてみる(2016.11.23)
- 【覚書】風柳亭(ココログプロ)をレスポンシブWebデザイン化(Bootstrap3使用)(2015.10.09)
- ココログ用全文検索 - ココログ最強検索を jQuery を使って作り直してみた(既知の不具合の幾つかに対応)(2015.09.01)
- 現在に生きるということ。(2013.01.05)
「覚書」カテゴリの記事
- 鍛高譚 ~ カレイにまつわる物語(2018.05.25)
- ココログをTwitterカードに対応させてみる(2016.11.23)
- 神使の兎 ~宇治神社にて~(2016.07.10)
- Twitter 原寸びゅー:PC版ブラウザ用・Twitterの画像閲覧と保存がはかどる拡張機能の紹介(2016.02.12)
- スマートフォンをPC上の音楽を再生するためのリモコンとして使いたい(2016.01.10)
« お詫びなど… | トップページ | 【AutoPagerize】Google 画像検索対応スクリプト更新(ver.0.01h) »
コメント