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