Какой-либо способ предотвратить “отмену выбора” выделенного текста?

«Конец строки», который вы ищете, на самом деле является окончанием абзаца («P», который вы упомянули).

Является ли это действительно лучшим решением, открыто для обсуждения, но если вы хотите, чтобы каждая строка в текстовом файле стала абзацем в .docx, это способ сделать это:

from docx import Document

with open('text.txt', 'r') as text_file:
    book_text = text_file.read().splitlines()

doc = Document()
for line in book_text:
    doc.add_paragraph(line)
doc.save('test.docx')
[ 115] Обратите внимание, что вместо того, чтобы хранить весь текст файла как одну строку в book_text, он хранит его как список строк, разбитых на концах строк.

И вместо того, чтобы затем добавить все содержимое как один абзац, он перебирает все строки в списке, добавляя каждую как отдельный абзац.

8
задан Mat 28 July 2012 в 05:42
поделиться

6 ответов

"возвратите false", а также "e.preventDefault ()" в работах onmousedown в FF и Safari, но не IE. Единственное решение для IE, насколько я могу сказать, состоит в том, чтобы бросить ошибку.

Это работает во всех браузерах (но вызывает ошибку в IE, так как preventDefault не является методом):

//clicking the 'test' element will not deselect text.
var test = document.getElementById("test");
test.onmousedown = function(e){
  e = e || window.event;
  e.preventDefault();
}

Я все еще хотел бы сделать это безошибочное в IE, если это возможно,

Благодаря Paolo Bergantino для подсказка "по onmousedown".

4
ответ дан 5 December 2019 в 20:20
поделиться

Это поведение, в то время как главным образом универсальный в современных браузерах, является браузером/реализацией, конкретным и почти абсолютно не связанным с CSS или JavaScript. В частности, обратите внимание, что Firefox поддерживает отдельные состояния выбора для страницы в целом и содержания текстовых полей, в то время как IE не делает этого. Еще хуже, рассмотрите браузеры текстового режима с отдельной мышью и интерфейсами клавиатурного набора.

1
ответ дан 5 December 2019 в 20:20
поделиться

Это работает на меня на Firefox, не попробовали IE все же. Примерьте нажатие foo.style.preventDeselect = "true"; строка, когда Вам выбрали текст. Использование mousedown событие.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<script>
$(document).ready(function() {
    $('#test').mousedown(function() {
        return false;
    });
});
</script>
<body>

Highlight some text on this webpage, then click basically anywhere on the document. Your selection will disappear.<br><Br>

Is there a way to prevent this behavior when the user clicks on a specific element, either by CSS or Javascript?<br><Br>

E.g.:<br><Br>

var element = document.getElementById("foo");<br>
foo.onclick = function(e){<br>
   //some magic here that prevents deselection from occuring<br>
}<br><Br>

or<br><Br>

<span id='test'>foo.style.preventDeselect = "true";</span><br><Br>

Thanks!<br><Br>

</body>
</html>
2
ответ дан 5 December 2019 в 20:20
поделиться

Что относительно

if(e.preventDefault) 
    e.preventDefault();
else
    e.returnValue = false;
1
ответ дан 5 December 2019 в 20:20
поделиться

На случай, если кто-то это проверит, у меня была аналогичная проблема. Мне нужно было запустить какой-то javascript для фрагмента выделенного текста, который был запущен нажатием кнопки на панели инструментов (диапазон с фоновым изображением). Я решил свою проблему, изменив промежутки на якоря с href "javascript: void (0)". Это предотвратило снятие выделения с выбранного текста.

0
ответ дан 5 December 2019 в 20:20
поделиться

Лучший способ, которым я выяснил, как это сделать, для IE нужно настроить слушатель на «onselectstart». Для Mozilla и других браузеров вы можете сделать на «Mousedown». Это будет работать только, если вы не используете «Mousedown» в любой другой части вашего сайта!

Снаппин: ЮИ путь: FF браузер:

  • Yahoo.UTIL.EVENT.ADDLISTENER (окно, «Mousedown», функция (EVT) { Yahoo.util.Event.PreventDefault (EVT); });

    IE Браузер: В IE вас не разрешено устанавливать этот слушатель на окно, поскольку в IE это не работает. Лучшее, что нужно сделать, это на вашем элементе тела Установите элемент класса, затем ссылаетесь на него и примените слушатель к этому элементу объекта.

  • // получить элемент по классу и Назначить VAR BAR Yahoo.util.event.addlistener (бар, «Выбор таблицы», функция (EVT) { Yahoo.util.Event.PreventDefault (EVT); });

Если вы хотите сделать это простым способом, просто делайте

  • Window.Onmousedown = Функция () {return false;}

или для IE

  • body.onselectstart = function () {return false;}

Надеюсь, это поможет.

0
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: