CMS「すぐ使えるCGI」の開発者がご質問にお答えします

 

続々・統合の JavaScriptについて (試用中にSSI/PHP で組込みの場合) (No. 1247)

回答日: 2012-10-29
<< 掲示板一覧  >> 質問する

質問

1240、1243で質問させていただいたものです。
ご返答ありがとうございます。

1243の件は、私の方の間違いを確認しました。
こちらの内容は忘れていただければと思います。
(いただいデータを混在させていました。すみません)

で、
1240の件は、まだ解決しておりません。

mergedlistの中に

Aのニュース1
Aのニュース2

Bのニュース1
Bのニュース2


として読み込んだ場合、JavaScriptを追加しない場合は、

Aのニュース1
Aのニュース2
クレジット

Bのニュース1
Bのニュース2
クレジット

と表示されますが、JavaScriptを追加すると、

クレジット

Bのニュース1
Bのニュース2
クレジット

となり、最初のニュースが消えてしまいます。
試しに、3つ目のCのニュースを入れてみても、やはり1番上のニュースだけは
消えてしまい、クレジットだけが残ります。

何かわかりますでしょうか。

こちらの箇所がなかにか解決せずで購入に進めないでいます。
お忙しいところ恐縮ですが、よろしくお願いします。
投稿日時: 2012-10-28 16:39

回答

お世話になっております。
解決にお時間が掛かり申し訳ありません。

■元のご質問
http://sugutsukaeru.jp/bbs/1240/


さて問題についてですが、こちらでも同様の環境を作ってテストした所、同じ現象が確認できました。
先日は試用中の表示と問題は無関係とご回答致しましたが、この点は認識不足でした。申し訳ございません。

■対応方法

ライセンスキーを登録して試用中の表示がなくなれば現在のテンプレートのままで期待通り動作しますが、試用中に統合の確認をされる場合は、以下の変更を行って下さい。

○対象ファイル: 組み込み先ページ(トップページの index.html など)

○変更箇所(変更前)

</body>の直前に追加したコードのうち、下記の1行を変更して下さい。

================================
<!-- body タグの終了直前に追加 ここから -->
<script type="text/javascript"><!--

var ListPart = document.getElementById('mergedlist');
var ListIds = new Array();
for (var i=0; i<ListPart.childNodes.length; i++){
    var LItem = ListPart.childNodes.item(i);
    if (LItem.nodeType==1){     <!-- この行を変更 -->
        ListIds.push(LItem.id);
    }
}
================================

○変更後
上記で「<!-- この行を変更 -->」とある行を、以下の1行で置き換えて下さい。
================================
    if (LItem.nodeType==1 && LItem.id && LItem.id.indexOf("news",0)==0){
================================


○確認
変更が終わりましたら、サーバに上書きアップロードの後、再読み込みしてごご確認下さい。


◆いただいた内容からの変更点
タイトルに詳細情報を追記しました。
回答日: 2012-10-29

さらに詳しく