私はランダムなヘッドショットのかわいいうぬぼれを含むウェブサイトを持っています。ページを読み込む (または顔写真をクリックする) たびに、新しい顔写真に置き換えられます。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 でも同じ問題がありました。