Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creating download prompt using purely javascript

Tags:

javascript

I have some text data (say var a = 'Hello World From Javascript';)in javascript variable in current window. I want to do the following through javascript-

1. open a new window and write the text data to the window.
2. set the content type to text/plain.
3. set the content-disposition to attachment, so that download prompt comes.
4. user downloads the text data as a text file and saves it to his local disk.

is this all possible through javascript?

I know we can make ajax calls to server or redirect but in this case instead of following above steps. But in this case, these workarounds are not adaptable.

like image 742
Ranjan Sarma Avatar asked Feb 02 '26 08:02

Ranjan Sarma


1 Answers

you can do that using JS & HTML5 features. Please find below a sample code.

        var fileParts = ['Hello World From Javascript'];

        // Create a blob object.
        var bb = new Blob(fileParts,{type : 'text/plain'});

        // Create a blob url for this. 
        var dnlnk = window.URL.createObjectURL(bb);

        var currentLnk = $('#blobFl').attr('href');

        // blobFl is the id of the anchor tag through which the download will be triggered.

        $('#blobFl').attr('href',dnlnk);
        $('#blobFl').attr('download','helloworld.txt');

        // For some reason trigger from jquery dint work for me.
        document.getElementById('blobFl').click();
like image 71
Rajagopalan Srinivasan Avatar answered Feb 03 '26 22:02

Rajagopalan Srinivasan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!