Snow-Materia >> Macgo > Q&A


Page-Guide
Anchor
Preamble

ダウンロードやサンプルは 目次ページ を、
設置や埋め込み方については 設置のしかたとソースの書きかた のページを、
機能や設定については 機能や設定について のページをご覧ください。


Contents

Q&A

よくある質問や、特殊な使い方をするときの解説などをここにまとめておきます。

フレームでアクセス解析を使うには

0

フレームを使ってて、フレーム内のページから解析をするとき。
そのままではリファラーが親フレームのURLになってしまって、正しく解析できません。
そこで、HTMLにソースを書くときに、次のようにしてみてください。

ソース

<script type="text/javascript"><!--
    var mag = '?key=0' + macgo(1);
    document.write('<img src="macgo\/macgo.cgi'+mag+'" alt="counter">');
// --></script>

※ver2.02 からmag.jsの仕様が変わったので注意してください.

仕組みは次の通り。

macgo()
document.~でデータを取得します.
macgo(1)
window['top'].document.~でデータを取得します.

window['top'].documentは、親フレームのドキュメントを指します。
top.document と同意です。

こうすることで、親フレームのドキュメントからデータがとられるようになります。

※なお、IEのときに限り、自動で対処してくれます。
(window['top'].location が取れる場合、そうする)
これはIEのルーズさを突いたもので、正しくはないため、NNやOperaでは効きません。
なので、しっかりしたいなら、ちゃんと対処しましょう。

フレーム&別サーバを使ってるサイト

なお、macgo(1) だと、フレーム内のページAからフレーム内のページBに移動して、
そのページBでページ解析しようとすると、JSランタイムエラーが起きて、解析できないことがあります。

これは、親フレームページB が違うサーバにある(URLのドメインが違う)とき、起こります。
ブラウザのセキュリティによるもので、いたしかたありません。
└ もし他のサイトのページを自由にいじれたら、恐いでしょ?

その場合は、普通に macgo() にするか、解析を行わないか、フレームを使わないか、くらいしか対処法がありません。
一番いいのは、同じサイトのページは同じサーバに置きましょう、ってことなのですが。


テキストカウンターの時、キリ番

テキストカウンターのJavaScript部分のソースを、 ↓のように追加してみてください。

~略~
<script type="text/javascript"><!--
    var cnt = counter_0.split(','); // counter
    //~略~
    // キリ番
    var kiri = new Array(100,500,777,1000,1234,7777,10000);
    // キリ番のとき、カウンターを挟む前後のタグ
    var kist0 = '<strong style="font-size:120%;">'; //前
    var kist1 = '<\/strong>'; //後

    // キリ番計算
    var spst0 = ''; var spst1 = '';  // 通常時
    for (var k=0; k<kiri.length; k++) {
        if (kiri[k] == Number(cnt[1])) {
            spst1 = kist1; spst0 = kist0; break;
        }
    }
    // 書き出し
    document.write('<span title="today:' + cnt[2] + ' \/ yes:' + cnt[3] + '">');
    document.write(spst0 + cnt[1] + spst1 + '<\/span>');    
// --></script>
~略~

上の設定部分は、自由に書き替えてください.
「前後に挟むタグ」を、Aリンクなどにしてやれば、キリ番申請ページにリンク したりもできますね。

spst1 = kist1; spst0 = kist0; break;の部分を、location.href="申請ページのURL";にすれば自動ジャンプになります。
・・・ですが、普通、キリ番申請はお客さんの自由ですので、あまり強要なさらぬよう。(笑)


CGI独立サーバのときのフォルダ構成

CGIフォルダから、画像やHTMLが読めないサーバのときの、設置と設定。
NiftyやBiglobe、wakwakなどがこれに当たります。
以下の構成と設定を参考にしてください。

フォルダ構成

cgi-bin/ (CGI専用フォルダ)
 |- macgo/ (755) 
     |-- macgo.cgi  (755or700)

     |-- macgo1.ini (666or600)
     |-- macgo2.ini (666or600)

     |+- lib/  (755or700)
          |-- macgo1.pl  (644or600)
          |-- macgo2.pl  (644or600)
          |-- jcode.pl   (644or600)
          |-- gifcat.pl  (644or600)
          |-- jipang8.txt(644or600)
     |+- data/ (777or700)
     |+- old/  (777or700)
     |-- lock/ (777or700)

public_html/ (HTMLフォルダ)
 |- macgo/ (755) 
     |+- img/  (755)
     |+- img2/ (755)
     |+- img3/ (755)

     |-- m_skin.html(644)
     |-- macgo.css  (644)
     |-- mag.js     (644)

     |-- macgo.js   (666)
     |-- macgo2.js  (666)

macgo.cgiの中の設定

37行目
$countjs = '../../public_html/macgo/macgo.js'; # カウンターファイル
38行目
$countjs2 = '../../public_html/macgo/macgo2.js'; # カウンターファイル予備

macgo2.iniの中の設定

7行目
$skin = '../../public_html/macgo/m_skin.html'; # スキンファイル
8行目
$css = 'http://~/macgo/macgo.css'; # スタイルシートファイル

行数は、おおよその値です。
CSSだけ、http://からの絶対パスで指定してください。

HTMLのソースの書き方の注意

  • HTMLページに書くなら、 macgo.cgiへのパスだけ、気をつけて書いてください。
  • 掲示板などのCGIページに書くなら、mag.jsmacgo.jsなどのリンクも、書き替えてください。
  • 不安なら全部http://からの絶対パス で指定してやればいいです。


「macgo」とか「gather」って何?

・・・特に何も。(ぉ

macgo は「まくご」と読みます。
7は「まぐ先生」呼んでます。 mac だと林檎っぽいので mag で。

gather は「集める」という意味。
お世話になってるglas-gatherさんにちなんで。(ぇー)
「アクセス解析」って名前じゃちょっと味気なかったので。
ちなみに、「アクセス解析」なら 「access-analyzer」 ですよ。

ついでに、2つ合わせて略して M・T・G って読むと、某カードゲームみたいで超カッコイイですね。(ぇー)



ページ情報
Prev
First
2003.12.18
Last
2005.01.21