Часть решения:
var divQuote = document.write('<div onmousedown="oQuote.past()" class="button" id="quote_div" style="z-index:1000;cursor:pointer;position:absolute;visibility:hidden;"><b>Цитировать</b></div>');
var divQuote = document.getElementById('quote_div');
window.onload = function(){
//document.onselect = quickQuote;
//document.onclick = quickQuote;
document.onkeyup = quickQuote;
document.onmouseup = quickQuote;
var oQuote = new quickQuote();
}
function quickQuote(e){
var selText = '';
if (window.getSelection && !window.opera) selText = window.getSelection();
else if (document.getSelection) selText = document.getSelection();
else if (document.selection) selText = document.selection.createRange().text;
this.selText2 = selText;
selText.toString().replace(/(\r?\n\s*){2,}/gi,'\r\n').replace(/^\s+|\s+$/gi,'').replace(/(\ |\t)+/gi,' ');
if(!selText) return
var e = e || window.event;
if (e.pageX == null && e.clientX != null){
var html = document.documentElement;
var body = document.body;
e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
}
divQuote.style.left = (e.pageX-80)+'px';
divQuote.style.top = (e.pageY+11)+'px';
divQuote.style.visibility = 'visible';
//divQuote.innerText = selText;
this.past = function(){
alert(selText);
}
}
Есть вопрос: Как работать с объектами Javascript?
вот это прочитал, не осилил.
В данном случае у меня происходит:
1. Появляется ссылка, после выделения любого текста на старнице.
2. При нажатие на ссылку - необходимо вызвать функцию, которая продеманстрирует выделенный текст, который содержится в переменной selText.
Как это сделать с помощью объектов, а не банальной передачей выделенного текста в функцию?
А такой вриант:
if(!selText) return
не вызовет ошибку? Т.е. всегда будет выполняться верно?
Этим хотел проверить, есть ли текст в этой переменной, и нет ли ошибок получения выделенного текст (undefined).