У меня была похожая ситуация (но я совсем не хотел сдаваться). Я создаю дружественную для сохранения версию веб-страницы с использованием Javascript, которую я хочу, чтобы пользователь загружал в виде текстового файла (в моем случае значения, разделенные запятыми). Я думаю, data:
URI могут помочь здесь.
//construct the csvOutput in Javascript first
var popup = window.open("data:application/octet-stream," + encodeURIComponent(csvOutput), "child");
//no need to document.write() anything in the child window
В Firefox это даже не открывает окно, а просто спрашивает пользователя, хочет ли он сохранить файл, и сохраняет его как файл .part. Не совсем идеально, но, по крайней мере, он сохраняет файл без появления ненужного окна.
В качестве альтернативы мы можем использовать тип MIME text / plain:
//construct the csvOutput in Javascript first
var popup = window.open("data:text/plain;charset=utf-8," + encodeURIComponent(csvOutput), "child");
В Firefox это открывает новое окно, но затем оно по умолчанию сохраняется как текст ASCII, без какого-либо излишеств родительского окна или переноса строк. Это, вероятно, то, что я буду использовать.
Похоже, это не сработает в IE. IE 8 является единственной версией, которая поддерживает data:
URI, и имеет ряд ограничений на то, где его можно использовать. Для IE вы можете посмотреть execCommand .
Благодаря этому tek-tip thread и статье Википедии о схеме URI данных .