Я пишу расширение Chrome, которое позволяет пользователю сохранять текстовый фрагмент в свою учетную запись (на сайте Python / Flask).Пользовательский поток ...
- Пользователь выделяет текст, который он хочет сохранить
- Щелкните правой кнопкой мыши и выберите действие, которое я добавил в контекстное меню Chrome
- Всплывающее окноПоявится окно с выделенным текстом в текстовой области в форме.Пользователь может вносить окончательные изменения и сохранять в своей учетной записи.
Проблема заключается в том, что форматирование не сохраняется при отображении в текстовой области.(Все отображается в одной строке)
У меня была эта проблема на моем бэкэнде Python, но я решил ее с помощью repr ().Я искал эквивалент JS, но не повезло.
//eventPage.js
var contextMenuItem = {
"id": "grabText",
"title": "Save text",
"contexts": ["selection"]
};
chrome.contextMenus.create(contextMenuItem);
chrome.contextMenus.onClicked.addListener(function(clickData){
if (clickData.menuItemId == "grabText" && clickData.selectionText){
chrome.storage.local.set({snippet: clickData.selectionText}, function(){});
chrome.windows.create({type: 'popup', focused: true, url: '/submitSnippet.html'}, function(){});
}
})
//submitSnippet.js
...
$('#SnippetEntry').val(result.snippet);
...
submitSnippet.html
...
...
...
При переходе через 1-3 выше с:
The White House
1600 Pennsylvania Avenue NW
Washington, DC 20500
Все идет в одну строку.The White House 1600 Pennsylvania Avenue NW Washington, DC 20500
Копирование-вставка непосредственно в мою текстовую область сохраняет разрывы строк.Могу ли я что-то сделать в своем JS, чтобы сохранить форматирование при использовании clickData.selectionText?