Javascript Textbox Копировать / Вставить Потеря новой строки

1

У меня есть сценарий Tampermonkey, который создает список значений из отмеченных флажков на веб-странице. Коробка отображает данные красиво, каждое значение на новой строке ниже другой. Тем не менее, я теряю символы новой строки, когда копирую и вставляю эти значения с помощью буфера обмена Microsoft. Есть ли способ настроить сценарий, чтобы сохранить сохранение символов новой строки (\n)?

JavaScript:

var box = document.createElement( 'div' );
box.id = 'myAlertBox';

document.body.appendChild( box );

box.textContent = text + '\n';

var selectedQueries = document.querySelectorAll (query);

selectedQueries.forEach ( (chkBox) => {
    box.textContent += chkBox.title + '\n';
});

CSS:

#myAlertBox {
    font-size: small;
    background: white;
    border: 5px solid green;
    padding: 4px;
    position: absolute;
    top: 280px; right: 80px;
    max-width: 300px;
    white-space:pre-wrap;
}
  • 0
    Новые строки в окнах - это \r\n , так что ... вы можете найти здесь ответ здесь stackoverflow.com/questions/1155678/… если так, то мы можем закрыть как dupe.
  • 0
    Возможный дубликат Как заменить все разрывы строк в строке тегами <br />?
Показать ещё 2 комментария
Теги:
tampermonkey

2 ответа

1
Лучший ответ

Спасибо всем! Я просто изменил textContent на innerHTML и использовал <br/> поскольку строка прерывается, как было предложено. Вы все коллективно спасли мне много ручного труда.

Рабочий код:

function ParseCheckBoxes (query, text) {

    if (document.getElementById('myAlertBox') !== null) {
        document.getElementById("myAlertBox").outerHTML='';
    }

    var box = document.createElement( 'div' );
    box.id = 'myAlertBox';

    document.body.appendChild( box );

    box.innerHTML = text + '<br/>';

    var selectedQueries = document.querySelectorAll (query);

    selectedQueries.forEach ( (chkBox) => {
        box.innerHTML += chkBox.title + '<br/>';
    });
}
0

HTML не будет поддерживать \n потому что он будет рассматриваться как пробел. Используйте тег <br/> для разрыва строки.

var box = document.createElement( 'div' );
box.id = 'myAlertBox';

document.body.appendChild( box );

box.textContent = text + '<br/>';

var selectedQueries = document.querySelectorAll (query);

selectedQueries.forEach ( (chkBox) => {
    box.textContent += chkBox.title + '<br/>';
});
  • 0
    К сожалению, данные добавляются в виде текста в текстовое поле. Это результат: 06481-CT TECHNOLOGIST<br/>002561-CT TECHNOLOGIST (OP)<br/>
  • 0
    если это так, вы должны использовать textarea textbox не textbox . textbox не будет поддерживать новую строку.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню