1

私はランダムなヘッドショットのかわいいうぬぼれを含むウェブサイトを持っています。ページを読み込む (または顔写真をクリックする) たびに、新しい顔写真に置き換えられます。Facebookでウェブサイトへのリンクを投稿するまではうまく機能します。

その場合、Facebook がページの画像をスキャンすると、スクリプトが実行されないため、ランダムな画像が見つからないことがわかります。Facebookのサムネイルにもランダムな画像が欲しいです。

サーバー側のコードに頼らずにこれを解決する方法はありますか?

これが私が今やっていることです:

ヘッドスクリプトセクションで

var lastTimeout = 0;
var lastHeadNum = 0;

function headURL(headCount)
{
    url = "/public/images/heads/mtoy";
    if( headCount < 10 )
        url += "0";
    url += headCount.toString();
    url += ".gif";
    return url;
}

function headshotImage()
{
    lastHeadNum = Math.floor((Math.random()*87)+1);
    document.write('<img id="headshot" src="' + headURL(lastHeadNum) + '" onclick="next_headshot();" width=150 height=150>\n');
    lastTimeout = setTimeout("next_headshot();", 12000);
}

function next_headshot()
{
    if (lastTimeout != 0)
        clearTimeout(lastTimeout);
    do {
        headNum = Math.floor((Math.random()*87)+1);
    } while (headNum == lastHeadNum);
    lastHeadNum = headNum;
    document.getElementById('headshot').src = headURL(headNum);;
    lastTimeout = setTimeout("next_headshot();", 12000);
}

その後、body-html で

<div id="contents">
<script type="text/javascript">headshotImage();</script>
<H1 class="contenthead">Table of Contents</H1>

以前の化身では、body-html は次のようになりました。

<div id="contents">
<img id="headshot" src="" onclick="next_headshot();">
<H1 class="contenthead">Table of Contents</H1>

そして、最初に next_headshot を呼び出すための body.onload ハンドラーがありましたが、Facebook でも同じ問題がありました。

4

1 に答える 1

1

Facebook にランダムな画像を表示させたい場合は、サーバー側のコードが必要だと思います。しかし、固定画像に満足している場合は、OpenGraph を調べてください。<head>これをセクションに入れることができるはずです:

<meta property="og:image" content="/public/images/heads/mtoy01.gif"/>

もう 1 つの方法は、<img>タグを (手続き的に生成するのではなく) HTML に直接配置し、それを 1 つの画像にハードコードすることです。おそらくページの読み込み時にすぐに交換できますが、最初はランダムな画像は得られません。

于 2012-05-16T16:43:07.457 に答える