在JS中读取文件,将行复制到剪贴板并在用户粘贴剪贴板时复制下一行

时间:2013-06-25 09:55:24

标签: javascript jquery loops readfile

我想逐行阅读普通的文本文件。应将每行复制到剪贴板(Internet Explorer),当用户粘贴剪贴板(进入输入字段)时,应将下一行复制到剪贴板。

我的代码现在看起来像这样:

<script>
$.get('list.txt', function(data) {
    var lines = data.split('\n');
    for (var i = 0, len = lines.length; i < len; i++) {
        window.clipboardData.setData('Text', lines[i]);
    }
});

$('#text').bind("paste", function(e) {
    $("#output").html(window.clipboardData.getData('Text'));
});
</script>

我的问题是我不知道如何停止循环,直到用户粘贴他的剪贴板,然后继续。

1 个答案:

答案 0 :(得分:0)

您需要在listenerpaste event中增加循环,而不是一次性循环。

(function () { // scope closure
    var lines = [], i = -1; // initial `i` -1 so `i + 1 === 0` => first item

    function setClipboard() { // modify to next item in `lines`
        i = (i + 1) % lines.length; // make `i` go back to 0 if at end
        window.clipboardData.setData('Text', lines[i]);
    }

    $.get('list.txt', function(data) {
        lines = data.split('\n'); // give lines it's data
        setClipboard(); // initial
    });

    $('#text').bind("paste", function(e) {
        $("#output").html(window.clipboardData.getData('Text'));
        setClipboard(); // change to next line
    });
}());