Показать сообщение отдельно
  #4 (permalink)  
Старый 11.05.2019, 21:43
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от provigator
если никак через XHR, то буду использовать fetch
Но это тоже самое и не работает по-умолчанию в целях безопасности!

laimas, вы не можете получить и оперировать содержимым файла, если вы используете протокол file:/// ни при помощи класса XMLHttpRequest, ни при помощи Fetch API, ни при помощи класса HTMLIFrameElement или каким-либо другим способом!
Код:
Fetch API cannot load file:///Users/valentin/javascript/test/data.txt. URL scheme must be "http" or "https" for CORS request.
laimas, Fetch API предназначен для работы с сетью, а не с файловой системой!

Сообщение от provigator
у меня задача запускать скрипт с жесткого диска
data.txt в том же каталоге
provigator, вы можете это сделать!

Google Chrome запущенный с аргументами в терминале

Допустим у вас в папке есть основной файл index.html с кодом, который вы привели выше и файл с данными data.txt. Перейдите в эту папку в терминале и запустите Google Chrome со следующими аргументами...
Код:
chrome --no-first-run --no-default-browser-check --allow-file-access-from-files --temp-profile --allow-external-pages --allow-file-access --user-data-dir=./chrome-data -open ./index.html
  • Параметр --user-data-dir необходим для предотвращения использования Chrome профиля по умолчанию (он создаст в вашей папке папку chrome-data, как я указал выше)
  • Параметр -open <url> указывает, какой файл запустить

После запуска этой команды откроется ваш index.html в отдельном экземпляре браузера, который не будет связан с вашим уже открытым браузером, в котором можно будет читать локальные файлы!

Почему я написал просто chrome в терминале? Потому что до этого выполнилось
Код:
alias chrome="/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
которое прописано в ~/.zshrc (для zsh) или в ~/.bash_profile (для bash).
На самом деле вы можете вместо chrome указать сразу путь к исполняемому файлу браузера. Если вы не можете найти путь, то посмотрите через Activity Monitor / System Monitor / Task Manager.
Ответить с цитированием