blosxom の google_highlight プラグインでは、Referer: が google 検索だった場合に、q= の部分をとりだして、検索語をハイライトするということをやっています。
これの javascript 版があればベンリかなとおもい quick Hack。
function highlightKeyword() {
var html = document.body.innerHTML;
if (document.referer == undefined) return;
var keywords = extractQueries(document.referer);
if (keywords.length > 0) {
for (i in keywords) {
var kw = keywords[i];
var mod = i % 3; // modular by 3
var pat = new RegExp(kw);
html = html.replace(pat, "<span class=\"highlight" + mod + "\">" + kw + "</span>");
}
document.body.innerHTML = html;
}
}
function extractQueries(referer) {
var queries = new Array();
referer.match(/q=([^&]+)/);
if (RegExp.$1) {
var match = RegExp.$1;
var qs = match.split("+");
for (i in qs) {
queries.push(unescape(qs[i]));
}
}
return queries;
}
document.write("<style>
.highlight0 { background: #ff0; }
.highlight1 { background: #0ff; }
.highlight2 { background: #f0f; }
</style>
");
こんな感じですな。document.body.innerHTML を String.replace で置換しています。マルチバイトはうまくうごきませんねえ。。
これ便利ですね。使わせて頂きます。
Posted by: とくひろ on March 25, 2005 06:32 PM