最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Create text file in JavaScript - Stack Overflow

programmeradmin3浏览0评论

I am trying to create a text file using JavaScript, I know it is possible by using ActiveX object, but it runs well only on IE browsers.

My requirement is to generate a text file using JavaScript for a Safari browsers?

Can anyone help me in this regard?

I am trying to create a text file using JavaScript, I know it is possible by using ActiveX object, but it runs well only on IE browsers.

My requirement is to generate a text file using JavaScript for a Safari browsers?

Can anyone help me in this regard?

Share Improve this question edited Nov 18, 2011 at 7:25 Samuel Liew 79k111 gold badges168 silver badges297 bronze badges asked Nov 18, 2011 at 6:56 nagendranagendra 1611 gold badge1 silver badge12 bronze badges 2
  • 1 Dude provide us your code so that we can help..... – Awais Qarni Commented Nov 18, 2011 at 7:00
  • see also How to create, save a txt file with javascript compatible cross-browser – harpo Commented Nov 18, 2011 at 7:09
Add a comment  | 

4 Answers 4

Reset to default 15

Another way to do it would be to use a Blob and URL.createObjectURL. All recent browsers including Safari 6+ support them.

var textFile = null,
  makeTextFile = function (text) {
    var data = new Blob([text], {type: 'text/plain'});

    // If we are replacing a previously generated file we need to
    // manually revoke the object URL to avoid memory leaks.
    if (textFile !== null) {
      window.URL.revokeObjectURL(textFile);
    }

    textFile = window.URL.createObjectURL(data);

    // returns a URL you can use as a href
    return textFile;
  };

Here's an example that uses this technique to save arbitrary text from a textarea.

Another thing to note about the example is that I used the download attribute on the download link. Unfortunately, Safari does not currently support it. However in browsers that do, the file will automatically be downloaded when clicked instead of opening the file in the browser. Also, since I set the download attribute to info.txt the file will be downloaded with that name instead of the random name generated by createObjectURL.

In JavaScript, you can use the following line to ask the user for saving a text file:

window.open("data:text/json;charset=utf-8," + escape("Ur String Object goes here"));

I tested this in some popular browsers some time back but please check if it works in Safari or not.

You can use following function to create and download a txt file:

const initDownload = (function () {
  const a = document.createElement('a')
  document.body.appendChild(a)
  // @ts-ignore
  a.style = 'display: none'
  return function (data: string, fileName: string, fileHeader) {
    a.href = fileHeader + data //Image Base64 Goes here
    a.download = fileName //File name Here
    a.click() //Downloaded file
  }
}())

initDownload(
  'content of file',
  'filename.txt',
  'data:text/json;charset=utf-8,'
)

but my requirement is to generate a text file using javascript for a safari browser

That's not possible with vanilla JavaScript due to security restrictions. You can however use server-side JavaScript such as Node.JS or Ajax or some other server-side technology.

发布评论

评论列表(0)

  1. 暂无评论