从<p> </p>复制文本时删除空行

时间:2014-10-16 13:59:35

标签: javascript html css

我在firefox中遇到了问题。有一些这样的行:

<p id="rec_2" class="logMess errorMess">test</p>
<p id="rec_3" class="logMess errorMess">test</p>
<p id="rec_4" class="logMess errorMess">test</p>

CSS:

    .logMess {
        color:#000;
        padding: 4px 2px 2px 3px;
        min-width: 100%;
        line-height: 18px !important;
    }
    .errorMess {
        color:#fff !important;
        background:rgb(163,0,0) !important;
    }

后来当我试图复制文字时,我收到了:

test

test

test

但我想要这样的东西,我没有机会使用任何框架或类似的东西:

test
test
test

感谢。

2 个答案:

答案 0 :(得分:0)

问题出在webkit和其他程序的复制事件中。关于 CSS NOT

尝试捕获复制事件并对其进行格式化。

document.addEventListener('copy', (event) => {
  const toCopy = document.getSelection().toString();  
  console.log(toCopy);
  let toPaste = "";
  $(toCopy.split('\n')).each(function(i,v){
    if (v.length > 0) {
      if (toPaste != "") {
        toPaste += '\n';
      }
      toPaste += v;
    }
  });
  event.clipboardData.setData('text/plain', toPaste);
  event.preventDefault();
});

https://codepen.io/mike-polo/pen/WNbNGvR

答案 1 :(得分:-1)

CSS 文件中,为margin:0元素添加规则padding:0p。 那将解决这个问题。

我在这里创建了一个jsFiddle演示:http://jsfiddle.net/kb3gN/6490/