2014-07-01 27 views
0

我在处理换行符时使用ZeroClipboard(https://github.com/zeroclipboard/zeroclipboard)时遇到问题。如何使用ZeroClipboard和Windows处理换行符?

我的想法是将一些HTML内容复制到内部剪贴板并粘贴到Win32应用程序中(我的意思是一些商业应用程序,但在这种情况下它的行为类似于简单的记事本)。在将数据粘贴到网络浏览器(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> 

回答

0

我终于取得了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"); 
     } 
    } 
    }; 
代码
相关问题