Как javascript может передавать контент пользователю? - PullRequest
0 голосов
/ 18 марта 2009

Мне нужен образец Javascript, который читает содержимое из URL-адреса и создает файл в клиенте с таким же содержимым при нажатии какой-либо кнопки. Я также понимаю, что Javascript не может быть разрешен доступ к локальной файловой системе (если вы не используете объекты ActiveX). Я не хочу полагаться на объекты ActiveX (так как мой клиент не всегда IE).

Итак, вот что я сделал. Я использовал стандартный XmlHttpRequest, сделал запрос и получил свои байты. Теперь я подумал, что могу передать это содержимое пользователю, сначала открыв стандартное диалоговое окно (окно, которое появляется при попытке загрузить что-то из Интернета с такими параметрами, как Открыть / Сохранить / Отмена), а затем попросив пользователя сохранить его где-то.

Я знаю, как выполнить чтение, может кто-нибудь показать пример javascript / html на тему «Как открыть диалоговое окно подтверждения для пользователя и передать некоторое содержимое?»

PS: Не совсем уверен, что это вообще можно сделать в javascript, но с Javascript вы никогда не знаете, что возможно, а что нет:)

Ответы [ 4 ]

1 голос
/ 18 марта 2009

Вместо того, чтобы использовать Javascript для потоковой передачи содержимого, что невозможно по очевидным причинам безопасности, вам нужно указать браузеру URL-адрес, который будет возвращать заголовок Content-Type заголовка application/octet-stream. В большинстве случаев это заставит браузер инициировать операцию «сохранить как» и спросить пользователя, что с ней делать.

Я считаю, что это можно сделать с помощью iframe на той же странице, так что пользователю не придется уходить от страницы или открывать новую вкладку / окно.

0 голосов
/ 18 марта 2009

Возможно, вы захотите взглянуть на TiddlyWiki , который утверждает, что может записывать себя на диск ...

0 голосов
/ 18 марта 2009

Посмотрите на это так: если бы вы могли читать / писать на компьютерах пользователей, используя JavaScript, то ни один компьютер не был бы защищен от просмотра веб-страниц.

Сказав это, вы не можете читать / записывать файлы на стороне клиента, используя JavaScript.

Но вы могли бы, если бы вы использовали Flash / Java-апплет; в этих случаях внедренные объекты запрашивают ваше разрешение перед выполнением таких действий.

0 голосов
/ 18 марта 2009

Если я понимаю, в чем ваш вопрос, то вы хотите использовать JavaScript для записи данных, как скрипт на стороне сервера (php, python, java и т. Д.), Но в браузере?

Если это так, то то, что вы не можете запросить в браузере JavaScript.

Однако, если по какой-то причине вы хотели сделать это с помощью серверного JavaScript, тогда да, «потоковая» часть возможна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...