Показать сообщение отдельно
  #2 (permalink)  
Старый 04.08.2010, 22:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,127

1.
if (textSelection = window.getSelection)
должна быть
if (window.getSelection)

2. так как click состоит из mousedown, mouseup $('#link').click стирает предыдущее выделение, если выделение было на другом элементе кроме #link'
надо менять логику скрипта или как вариант сделать так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title></title>
</head>

<body><div id="link">Выдели текст и кликни тут!!!</div><div id="link0">всякий разный текст</div><div id="link1">всякий разный текст</div><div id="link2">всякий разный текст</div>

<script language="JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
var textSelection = '';

function getSel() { //функция пишет в переменную выделение мышкой

    if (window.getSelection) // !IE
    textSelection = window.getSelection().toString();
    else // IE
    textSelection = document.selection.createRange().text;
    return textSelection;
}
$('body').mouseup(function () {
    getSel();
});
$('#link').mouseup(function () {
    if (textSelection) alert(textSelection);
});
</script>
</body>

</html>
Ответить с цитированием