Javascript로 로컬 파일 (file ://)을 읽어보십시오.
JavaScript로 해보자, 가벼운 마음으로 10 몇 년 만에 JS에 착수.
그러나 사내의 보이지 않는 벽으로 인해 사내 클라우드도 웹 서버를 세우는 것이 사실상 불가능했습니다.
본래 여기서 포기하고 다른 기법을 찾아야 합니다만…
우선 파일을 읽어 브라우저의 엔진으로 처리를 할 수 있으면 좋기 때문에, XHR를 사용해 파일을 읽어 보겠습니다.
main.html
<!DOCTYPE html>
<html lang="ja"><head><meta charset="UTF-8"></head>
<body>
<script type="text/javascript">
const xhr = new XMLHttpRequest();
var data;
window.onload = function onLoad() {
xhr.open('GET', './data/test.txt', false); // GETでローカルファイルを開く
xhr.onload = () => {
data = xhr.responseText;
};
xhr.onerror = () => {
console.log("error!");
};
xhr.send();
cts1 = document.getElementById("cts1");
cts1.innerText = data;
}
</script>
<div class="contents" id="cts1"></div>
</body>
</html>
아래의 브라우저에서 동작 확인했습니다.
- Firefox Quantam 62.0.3
- Chrome 69.0.3497.100
- Microsoft Edge 42.17134.1.0
Chrome은 시작할 때 다음 옵션을 지정하지 않으면 작동하지 않았습니다.
- --allow-file-access-from-files···file://을 사용할 수 있도록 한다
- --disable-web-security ...다른 폴더의 파일에 액세스 가능으로 한다
- --user-data-dir ...
FireFox에서는 로컬 원격 파일을 로드할 때 설정을 변경해야 합니다.
about:config를 열고
- strict_origin_policy = True(기본값) → False
(보안을 느슨하게 하는 옵션이므로 사용은 충분히 신중하게.)
여기 의 기사등을 참고로 했습니다.
(↑이쪽의 기사에 걸려 있는 것보다 각 브라우저와도 순조롭게 움직인 인상입니다.뭔가 간과가 있는 것일지도 모릅니다)
(추기)
xhr로 돌아오는 문자열은 아무것도하지 않으면 유니 코드로 돌아옵니다.
SJIS 파일을 로드하는 경우
xhr.overrideMimeType("text/plain; charset=Shift_JIS");
그러면 SJIS로 돌아옵니다.
(그러나 Edge는 항상 유니 코드로 돌아옵니다 ... 어려움)
Reference
이 문제에 관하여(Javascript로 로컬 파일 (file ://)을 읽어보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/coarra/items/fbd5f1771c56ddd0d708텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)