Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   В опере не работает скрипт "выделить всё" (https://javascript.ru/forum/misc/3136-v-opere-ne-rabotaet-skript-vydelit-vsjo.html)

ksevelyar 21.03.2009 17:58

В опере не работает скрипт "выделить всё"
 
del

Андрей Параничев 22.03.2009 16:43

Opera 9.64 - скрипт работает.

ksevelyar 22.03.2009 17:18

Удалил оперу, везде где она прописалась в реестре + удалил все её оставшиеся папки. Переустановил - конфигурация по умолчанию. Скрипт по прежнему не работает, версия, да, 9.64. Проверил в xp x86, xp x64, vista x64.

Вы как-нибудь настраивали оперу?

Андрей Параничев 22.03.2009 18:29

Вложений: 1
ksevelyar,
Нет. Покажите код, где вы используете вызов этой функции. На всякий случай прикрепляю файл, в котором тестил. Откройте в опере, если текст сразу выделен, то функция работает и ошибка у вас где-то в другом месте.

ksevelyar 22.03.2009 19:52

Да, текст выделен, спасибо!

Однако этот код не хочет работать:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script>
function selectNode (node) {
var selection, range, doc = window.document, win = window;
if ((doc = node.ownerDocument) && (win = doc.defaultView) && typeof
win.getSelection != 'undefined' && typeof doc.createRange != 'undefined'
&& (selection = window.getSelection()) && typeof
selection.removeAllRanges != 'undefined') {
range = doc.createRange();
range.selectNode(node);
selection.removeAllRanges();
selection.addRange(range);
}
else if (document.body && typeof document.body.createTextRange !=
'undefined' && (range = document.body.createTextRange())) {
range.moveToElementText(node);
range.select();
}
}
</script>
</head>
<body>
<div id="some">
  <p>Текст, который надо выделить</p>
</div>    
<script>selectNode(document.getElementById("some"));</script> 
</body>
</html>


Опытным путём выяснил что дело в параграфе

В опере не работает:
<div id="some">
<p>Текст, который надо выделить</p>
</div>

В опере работает:
<div id="some">
Текст, который надо выделить
</div>

Но я не могу обойтись без параграфов... Можно ли как-нибудь исправить этот глюк?


Часовой пояс GMT +3, время: 18:48.