从Chrome上下文菜单中获取文本时如何保留格式?

时间:2019-06-26 08:16:22

标签: javascript python jquery html google-chrome-extension

我正在编写一个Chrome扩展程序,该扩展程序允许用户将文本片段保存到其帐户(在Python / Flask网站上)。用户流...

  1. 用户突出显示要保存的文本
  2. 右键单击并选择我添加到Chrome上下文菜单中的操作
  3. 弹出窗口,其中包含窗体内文本区域中的选定文本。用户可以进行最终编辑并保存到他们的帐户。

问题是在文本区域中显示时不会保留格式。 (所有内容都显示在一行上)

我在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
  ...
<link rel="stylesheet" type="text/css" href="/css/bootstrap.css">
<script src="js/jquery-3.4.1.min.js"></script>
<script src="submitSnippet.js"></script>
  ...

<pre><textarea class="form-control mb-2" wrap="hard" id="SnippetEntry" rows="3" name="snippetinput"></textarea></pre>

...

通过以下方法通过1​​-3时:

The White House
1600 Pennsylvania Avenue NW
Washington, DC 20500

一切都变成一行。

The White House 1600 Pennsylvania Avenue NW Washington, DC 20500

直接粘贴到我的文本区域中可以保留换行符。使用clickData.selectionText时,我可以在JS中做一些保留格式的事情吗?

0 个答案:

没有答案