WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:リンク元ページタイトルの取得

0:[投稿] まり子 [2005/09/12 18:46 ][環境:IE6 UNIX,]

初めまして、無料配布のcgiやjsを拝借して、カスタマイズする程度の知識しかありませんが、宜しくお願いします。

現在、自サイト内のページについて感想や質問を書き込んでもらう掲示板を設置しています。
各コンテンツのページからその掲示板へリンクが貼ってあり、
掲示板のフォームには「今、読んでいたページ」という項があります。
現在は、そこに手入力してもらってますが、jsのreferrerを使えば、自動的に入力されるかも!と思いましたが、上手くいかず、ネット検索でも思う記事が出てこずで こちらで伺いたく書き込みました。

基本的にreferrerだとリンク元urlは取れても、リンク元のhrad内のタイトルを取るのは、無理なのでしょうか?

もしどなたか、リンク元head内のタイトルを取得し、それを掲示板の送信フォームに組み込む方法があるよ という方がいらっしゃいましたら、ヒントだけでも頂けないでしょうか?


1:[回答] andi [URL] [2005/09/13 14:15 ]

試しに作って見ました。こんな感じでどうでしょう。
bodyのonload辺りでgetReferrerTitleで取得した文字列を「今、読んでいたページ」に入れてあげると良いかも。

ただ「今、読んでいたページ」を勝手に取得されて嫌がる人もいそうな気もします。

function getReferrerTitle(){
    var req,res;

    if(!document.referrer){
        return false;
    }

    req = getXMLHttpRequest();
    if(!req){
        return false;
    }

    req.open("GET",document.referrer,false);
    req.send(null) ;
    if(req.status != 200 || req.readyState != 4 && !req.responseText){
        return false;
    }

    res = req.responseText;
    res.match("<title>(.*?)</title>");

    return RegExp.$1;
}

function getXMLHttpRequest(){
    var req;
    try{
        req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        try{
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(oc){
            req = null;
        }
    }
    if(!req && typeof XMLHttpRequest != "undefined"){
        req = new XMLHttpRequest();
    }
    return req;
}


2:[質問] まり子 [2005/09/15 20:03 ]

andi様、早速のお答えで、しかもjsの見本を書いてくださるとは、ありがとうございました!!
これを<SCRIPT LANGUAGE="JavaScript"><!-- と//--></SCRIPT>で囲んで、<head>内に入れ、<body>にonload="getReferrerTitle()"を入れ・・・・
<SCRIPT language="JavaScript">
<!--
if (document.referrer.length !=0 )
{document.write("リンク元は<FONT COLOR=RED>"+document.ReferrerTitle+"</FONT>です。");}
else{document.write("リンク元を取得できませんでした。");}
//-->
</SCRIPT>
・・・・でしょうか・・・・・
分からなくなってきました。情けないです。
取りあえず、js辞典を片手に色々試してみます。
せっかく教えてくださったのに このようなレベルで申し訳ありませんが、本当にありがとうございました。


3:[回答] andi [URL] [2005/09/16 00:40 ]

取り合えずサンプルを用意してみました。

http://andi.jp/sample/get_referrer_title.html

しかし、このページとリファラページの文字コードが違うと文字化けする可能性がありますね。


4:[回答] andi [URL] [2005/09/16 00:48 ]

すみません、あともう一つ、セキュリティを下げないと駄目ですね。
例えば私のサイトを信頼済みサイトにする必要があります。


5:[質問] まり子 [2005/09/16 15:08 ]

andi様、お忙しい中、ご親切にして頂き本当にありがとうございます。
早速、貴サイト様のアドレスを信頼済みに設定し、このページからクリックしてみたら、見事にこのページのタイトルが取得表示されておりました!!!

そこで、sample/get_referrer_title.html のソースをコピーしてTeraPadでhtmlにし、このページと同じShift_JISのページにリンクを貼って、試してみたのですが、表示されませんでした。
textboxの中は、真っ白です。信頼済みにも設定しましたのに。
他のページから行なってもやはりダメでした。

そこで、貴サイト様のsample/get_referrer_title.html へリンクを貼ってみましたが、ダメでした。
このページからしか、取得しないのは何故か!
何がいけないのか!何が違うのか!を現在考えております。
もし、お気づきの点がございましたら、ご指導下さいませ。
お手数おかけして申し訳ありません。


6:[回答] andi [URL] [2005/09/16 22:21 ]

環境の違いによって発生する問題でしたら、実際にその環境で試してみないことには何とも言えません。
よろしければそのサイトのURLを教えて頂けませんか?


7:[質問] まり子 [2005/09/16 23:04 ]

andi様、又、見てくださってありがとうございます。
一応、取得するところまできました。
が、文字化けしております。
このページもandi様が書かれたsample/get_referrer_title.html もシフトJISですよね。私もシフトJISでHTMLにしたのですが。

リンク元ページ;http://www.rpmg.bb4u.ne.jp/~vips/rink_moto.htm
titleとリンクのみのページです。
リンク元2ページ;http://www.rpmg.bb4u.ne.jp/~vips/rink_moto2.htm
実際のページは、このくらいのjsを付けているので、テスト用にしました。

両方とも、andi様のtitle.html と andi様のページをそっくりそのままコピペして当サーバーにupしたre.htmlへリンクを貼ってあります。

小さなミスは、修正しましたので、後は文字化けだけ!と頑張っているのですが、お気づきの点をございましたら、ご指導下さいませ。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World