tag-youre-it/content_script.js
2015-09-27 20:10:38 +02:00

96 lines
No EOL
2.4 KiB
JavaScript

$(document).ready(function () {
var isMenuShown = false;
var currentlySelectedWord;
// Find currently selected word
function processSelection () {
var focused = document.activeElement;
var selectedText;
if (focused) {
try {
selectedText = focused.value.substring(
focused.selectionStart, focused.selectionEnd);
} catch (err) {
}
}
if (selectedText == undefined) {
var sel = window.getSelection();
var selectedText = sel.toString();
}
if (selectedText) {
currentlySelectedWord = selectedText;
console.log(selectedText);
queryServer(selectedText);
} else {
currentlySelectedWord = "";
}
}
function queryServer (word) {
var serverUrl = 'http://lexitags.dyndns.org/server/lexitags2/Semtags?data={"word":"QUERYTOREPLACE"}'
$.get(serverUrl.replace('QUERYTOREPLACE', word), function (serverResponse) {
console.log(serverResponse);
updateList(serverResponse);
});
function updateList (serverResponse) {
var senses = serverResponse.senses;
senses.reverse();
var listTemplate = '<li id="SENSEID"><strong>WORD.</strong> EXPLANATION</li>'
var htmlList = [];
for (var i = senses.length - 1; i >= 0; i--) {
htmlList.push(listTemplate
.replace('SENSEID', senses[i].senseid)
.replace('WORD', senses[i].word)
.replace('EXPLANATION', senses[i].explanation))
};
htmlList = '<ul id="senses">' +
htmlList.join('') +
'</ul>';
// debugger;
$('#senses').replaceWith(htmlList);
}
}
document.addEventListener('click', function(evt) {
if (!document.hasFocus()) {
return true;
}
processSelection();
// evt.stopPropagation();
// evt.preventDefault();
}, false);
/*
Take the existing content, make it narrower and
insert a menu for tagging up content.
*/
function addMenu () {
if (isMenuShown) return;
$.get('example1.menu.html', function (htmlData) {
$('body').children().wrapAll('<div class="tagit-body" />');
$('.tagit-body').before(htmlData);
$('#js-hide-menu').click(removeMenu);
isMenuShown = true;
});
}
function removeMenu () {
if (!isMenuShown) return;
$('.tagit-body').children().unwrap();
$('.tagit-menu').remove();
isMenuShown = false;
}
addMenu();
// $('#js-show-menu').click(addMenu);
});