Wordが強調表示されるたびにトリガーされるFirefoxアドオンを作成しています。ただし、Wordが強調表示されたときにそれを検出するスクリプトが必要で、行き詰まっています。たとえば、nytimes.com(記事を読んでいるときにWordを強調表示すると、参照アイコンがポップアップ表示されます)。ただし、nytimes.comスクリプトは非常に複雑です。私は16歳でプログラマーではありませんので、それは間違いなく私のリーグから抜け出します。
これを行う最も簡単な方法は、ドキュメント上のmouseup
およびkeyup
イベントを検出し、テキストが選択されているかどうかを確認することです。以下はすべての主要なブラウザで動作します。
例: http://www.jsfiddle.net/timdown/SW54T/
function getSelectedText() {
var text = "";
if (typeof window.getSelection != "undefined") {
text = window.getSelection().toString();
} else if (typeof document.selection != "undefined" && document.selection.type == "Text") {
text = document.selection.createRange().text;
}
return text;
}
function doSomethingWithSelectedText() {
var selectedText = getSelectedText();
if (selectedText) {
alert("Got selected text " + selectedText);
}
}
document.onmouseup = doSomethingWithSelectedText;
document.onkeyup = doSomethingWithSelectedText;
スクリプトは次のとおりです。
<script>
function getSelText()
{
var txt = '';
if (window.getSelection)
{
txt = window.getSelection();
}
else if (document.getSelection)
{
txt = document.getSelection();
}
else if (document.selection)
{
txt = document.selection.createRange().text;
}
else return;
document.aform.selectedtext.value = txt;
}
</script>
<input type="button" value="Get selection" onmousedown="getSelText()">
<form name="aform">
<textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>
コードヒキガエルの礼儀:
http://www.codetoad.com/javascript_get_selected_text.asp
あなたの場合は、選択が行われたときにこのスクリプトを呼び出してから、たとえばAJAX NYtimesなどの関連情報を取得するリクエストします。