Javascript 如何使用零剪贴板和窗口处理换行符?

Javascript 如何使用零剪贴板和窗口处理换行符?,javascript,windows,line-breaks,zeroclipboard,Javascript,Windows,Line Breaks,Zeroclipboard,我在处理换行符时遇到了使用ZeroClipboard的问题 我的想法是将一些HTML内容复制到内部剪贴板并粘贴到Win32应用程序中,我指的是一些商业应用程序,但在这种情况下,它的行为就像简单的记事本 当将数据粘贴到web浏览器Chrome或其他一些文本编辑应用程序(如记事本+)时,一切正常,但当文本粘贴到记事本时,断线不会保留-在CRLF的交换中,有一些未知字符 以下是示例代码: <?php $ClipboardText = pack("a*CCa*", "xxx", $newL

我在处理换行符时遇到了使用ZeroClipboard的问题

我的想法是将一些HTML内容复制到内部剪贴板并粘贴到Win32应用程序中,我指的是一些商业应用程序,但在这种情况下,它的行为就像简单的记事本

当将数据粘贴到web浏览器Chrome或其他一些文本编辑应用程序(如记事本+)时,一切正常,但当文本粘贴到记事本时,断线不会保留-在CRLF的交换中,有一些未知字符

以下是示例代码:

<?php
    $ClipboardText = pack("a*CCa*", "xxx", $newLine0, $newLine, "yy");

    print '<button id="d_clip_button" class="d_clip_info" data-clipboard-text="'.$ClipboardText.'">Copy text</button>';
?>
<script>
    $(function() {
        var clip = new ZeroClipboard($(".d_clip_info"));
    });
</script>

我终于在ZeroClipboard中做了一个调整来处理它,下面是

  var _setData = function(format, data) {
    var dataObj;
    if (typeof format === "object" && format && typeof data === "undefined") {
      dataObj = format;
      ZeroClipboard.clearData();
    } else if (typeof format === "string" && format) {
      dataObj = {};
      dataObj[format] = data;
    } else {
      return;
    }
    for (var dataFormat in dataObj) {
      if (typeof dataFormat === "string" && dataFormat && _hasOwn.call(dataObj, dataFormat) && typeof dataObj[dataFormat] === "string" && dataObj[dataFormat]) {
        // Here is the tweak to replace all \n with \r\n characters in data sended to clipboard
        _clipData[dataFormat] = dataObj[dataFormat].replace(/\n/g, "\r\n");
      }
    }
  };