我想逐行阅读普通的文本文件。应将每行复制到剪贴板(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>
我的问题是我不知道如何停止循环,直到用户粘贴他的剪贴板,然后继续。
答案 0 :(得分:0)
您需要在listener
的paste 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
});
}());