Загрузка локального файла с использованием JavaScript - PullRequest
0 голосов
/ 08 февраля 2019

Поиск и чтение здесь частично помогли мне найти решение, которое является обходным путем для загрузки текстового файла с использованием часто рекомендуемого кода, такого как:

function FileRead(U) 
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        X=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        X=new ActiveXObject("Microsoft.XMLHTTP");
    }

  X.open('GET', U, false );
  X.setRequestHeader('Content-Type', 'text/html')
  X.send();
    return X.responseText;
}

Это хорошо работает для меня, покаПК, но не на Mac.

Поэтому я использовал метод, рекомендованный здесь, где я обозначаю локальный файл в качестве источника в сценарии, и он хорошо работал для нескольких страниц.Для других страниц мне нужно определить источник во время выполнения, взяв путь из локального хранилища.Опять же, подсказки здесь помогли, но я наткнулся на препятствие.Следующий код, расположенный в заголовке, начинает работать.

<script>
    var albumPath = '';
    if (typeof(Storage) !== "undefined") 
    {
        albumPath = localStorage.getItem('photo_album_path');
    }
    if (albumPath.substr(albumPath-1,1) !== '/') {albumPath = albumPath +'/'}

    var Raw_Album_Info = '';
    var script = document.createElement('script');
    script.src = albumPath+"album_info.txt";
    document.head.appendChild(script);
</script> 

<script src="../scripts/common.js" type="text/javascript"></script>
<script src="../scripts/photos_pages.js" type="text/javascript"></script>

<script>alert(Raw_Album_Info);</script>

Приведенный выше код не работает, если я не добавлю последнюю строку «alert».Он отображает пустое сообщение, но работает.Если я добавлю второй оператор оповещения, он покажет содержимое исходного файла.

В нижней части страницы у меня будет следующее:

<script language="JavaScript" type="text/javascript">
window.onload = LoadAlbumInfo();
var slideIndex = 2;
showSlides();
</script>

LoadAlbumInfo анализирует файл и рисует содержимое наpage.

Ясно, что здесь происходит проблема типа загрузки, но я не могу понять это.Любые предложения?

Удар от 11 февраля. Все еще ищу решение.

Я перепробовал все, что мог придумать, от setTimer до перемещения кода, до второго оператора window.onLoad,и единственное, что заставляет это работать, - это вставлять оператор предупреждения в код где-то между тем, где создается сценарий и когда используется элемент сценария.

Если я не могу понять это, я всегда могуприбегают к размещению 8-10 идентичных html-файлов в разных папках, но это будет довольно сложно поддерживать, и это не красиво.

Что касается использования php и т. Д., Этот проект выполняется на флэш-накопителе.Это автономно.Нет сервера, нет Интернета.

...