Вы можете написать функцию для получения текущего выбора следующим образом, а затем вызывать его, когда вам это нужно:
function getSelectedText() {
// get the selection function
var selection = window.getSelection || document.getSelection
|| document.selection;
if(selection) {
var range = selection.createRange;
if(range) {
selection = range();
}
// do something with selection
return selection.text || selection();
}
}
Вышеописанное работает во всех браузерах (IE, FF, Chrome)
Я не тестировал эту часть, но я думаю, что если вы напишите свой код по одной строке за раз, а потом присоединитесь к нему, будет легче отладить, вот пример (Предупреждение! Требуется проверка):
var href = [
'x=document;',
'a=encodeURIComponent(x.location.href);',
't=encodeURIComponent(x.title);',
'd=encodeURIComponent(getSelectedText());', // call doSelection here.
'url="http://example.com/share/bookmarks.php/Energy";',
'opts="modal=1,status=0,scrollbars=1,toolbar=0,resizable=1,width=885,height=765,left=" + ((screen.width-885)/2) + ",top=" + ((screen.height-725)/2);',
'open(url + "?action=add&popup=1&address=" +a + "&title="+ t + "&description=" +d ,',
'"Site Name", opts);',
'void 0;'
].join("");
document.write('<a href="' + href + '"><img src="images/bar/book22_5.jpg" alt="Example Code" title="Example Code" /></a>');