我的项目类似于基于C ++网络的IDE,我正在处理它的打开按钮,它将打开一个文本文件并将文本附加到contenteditable div
。当我点击我想要的choose file button
获取所选文本文件的内容,如剪贴板复制方式
将复制的文本附加到contenteditable div,就像粘贴它一样
2.1提供了setCaret
函数,该函数将在可信任div的开头设置插入位置
2.2提供了pasteTextAtCaret
功能,该功能将在当前插入位置开始粘贴事件
我希望它像复制和粘贴事件一样工作,因为这些事件不会导致我的代码出错并节省调试时间。
function readSingleFile(evt) {
var f = evt.target.files[0];
console.log(f);
if (!f) {
alert("Failed to load file");
return;
}
if (f.name.indexOf('.txt') == -1) {
alert(f.name + " is not a valid text file.");
return;
}
var r = new FileReader();
r.onload = function(e) {
setCaret(false, 0);
//copy here
pasteTextAtCaret(copied_text);
}
r.readAsText(f);
}
function setCaret(colPosition, divPos) {
alert('calllled');
var range = document.createRange();
var sel = window.getSelection();
range.selectNodeContents($('#board')[divPos]);
range.collapse(colPosition);
sel.removeAllRanges();
sel.addRange(range);//setting the caret position
}
function pasteTextAtCaret(text) {
alert('pasted');
var sel, range;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
var textNode = document.createTextNode(text);
range.insertNode(textNode);
range = range.cloneRange();
range.setStartAfter(textNode);
range.collapse(false);
sel.removeAllRanges();
sel.addRange(range);
}//if
}//if
else if (document.selection && document.selection.type != "Control") {
document.selection.createRange().text = text;
}//else if
}
document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
答案 0 :(得分:0)
或者只是使用php
轻松一下<?php
$file = "YourFile.txt";
$read = file_get_contents($file);
echo $read;
?>