ajax を利用して、すべてのページにコメン欄を表示 | リアナのカスタマイズ日記(CSS編集用デザイン)

リアナのカスタマイズ日記(CSS編集用デザイン)

アメブロ 新CSS CSS編集用デザイン 無料
カスタマイズ アメブロカスタマイズ 初心者
CSS スタイルシート デザイン
javascript jQuery

● ajax を利用して、すべてのページにコメン欄を表示する。
(ホームなどにもコメント欄を表示)


★ 問題点

① 同期型で、記事を読んでいるので、ページ表示に時間がかかります。
  1ページ1記事で設定しているブログであれば、表示時間は問題ないと
  思いますが、1ページ当たりの記事が、3件、5件、10件の場合は
  ページ表示に時間がかかる場合があります。

② ajax を使って、記事のページの読み込みを行っているので、
  アクセス解析のPV(ページビュー)が増えてしまう可能性があるので注意すること。



対策しました。下記箇所(注意:スマートフォーンの場合は、ポップアップしない


if ((typeof blogCommentType == "undefined") || (blogCommentType != "SMARTPHONE")){window.blogCommentType = "PC";}




★ 注意

① アメンバー限定記事には、コメント欄は表示されません。




● フリープラグインへ追記(①を利用してください


① フリープラグイン文字数制限対応


<script type='text/javascript' src='http://stat100.ameba.jp/blog/js/apm001.js'></script>
<script type="text/javascript" src="http://usrcss.ameblo.jp/skin/templates/6d/7d/10030757386.css"></script>
<script type='text/javascript'>
comment_home_disp();
</script>



● 説明

・ 下記はフリープラグインの先頭に1つあればOKです。

<script type='text/javascript' src='http://stat100.ameba.jp/blog/js/apm001.js'></script>


・ 下記はフリープラグインに既に記述があれば不要です

<script type="text/javascript" src="http://usrcss.ameblo.jp/skin/templates/6d/7d/10030757386.css"></script>




② フリープラグイン文字数制限非対応


<script type='text/javascript' src='http://stat100.ameba.jp/blog/js/apm001.js'></script>
<script type='text/javascript'>
$(document).ready(function(){
var entry_url = new RegExp(/http\:\/\/ameblo\.jp\/(.*?)\/entry\-(\d+)\.html.*/);
var comment_count=$(".commentArea").length;
if(comment_count==0){
var Art_count=$(".skinArticleHeader").length;
for(i = 0; i < Art_count; i++){
var Art_url=$(".skinArticleHeader a:eq("+i+")").attr('href');
if (Art_url.match(entry_url)) {
var Art_data=$.ajax({url: Art_url, async: false}).responseText;
var Comment_data=$(".commentArea", Art_data);
$(".skinArticleFooter:eq("+i+")").after(Comment_data);
if ((typeof blogCommentType == "undefined") || (blogCommentType != "SMARTPHONE")){window.blogCommentType = "PC";}
}}}
});
</script>



● スクリプトの説明

entry_url  ・・・ 記事のURLの形式(アメンバー限定記事は含まない)

if(comment_count==0){ ・・・ コメントが表示されていない、ホームなどのページの
ときのみ、コメント欄を表示する

var Art_data=$.ajax({url: Art_url, async: false}).responseText; ・・・・ 該当記事の
HTMLを得る

var Comment_data=$(".commentArea", Art_data); ・・・ 得たHTMLから
コメント欄を抜き出す

$(".skinArticleFooter:eq("+i+")").after(Comment_data); ・・・・ 記事フッター部の後に
コメント欄を追加する。

for(i = 0; i < Art_count; i++){ ・・・ 表示されている記事分、繰り返します。


if ((typeof blogCommentType == "undefined") || (blogCommentType != "SMARTPHONE")){window.blogCommentType = "PC";}

PCかスマートフォーン(SMARTPHONE)か、コメントが表示されていないページ(undefined)かを
判定して、コメントが表示されていないページ(undefined)であれば、PCをコメントタイプに
設定して、コメントがポップアップするように設定します。