توی وب جدید جاوااسکریپت درحال رنگ عوض کردن و بنوعی تغییر کاربری است، پیشترها بیشتر از جاوااسکریپت برای تغییرات کوچک در صفحه استفاده میشد، تغییراتی که اکنون بسیاری از آنها را `CSS` به عهده گرفته است. مسیری که جاوااسکریپت اکنون در حال طی کردن است مسیری است برای تبدیل شدن به زبانی همه منظوره برای ایجاد برنام های قدرتمند.

مقدمه بالا رو چرا نوشتم خودم هم نمیدونم :)

کاری که قراره انجام بدیم ایجاد یک فایل تصویری یا متنی با جاوااسکریپت است بطوری که کاربر بتونه دانلودش بکنه، البته این روش برای دیگر نوع فایل ها هم امکان پذیر هست فقط باید آگاهی ای به نوع فایل و صد البته `MIME Type`ها داشته باشیم. اگر می خواهیم یک فایل متنی قابل دانلود بسیازیم کار خیلی خیلی راحت است، فقط کد زیر رو نگاه کنید خودتون متوجه خواهید شد.

``` setupDownloadLink = function(link, code) { link.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(code); }; ```

جد فوق یک تگ `` و متن مورد نظر مارا گرفته و آدرس تگ را آدرس دانلود فایلی با همین محتوا قرار میدهد. در کد بالا بخش `text/plain` مشخص کننده نوع فایل است. حال اگر بخواهیم فایل تصویری با فرمت `png` بسازیم میتوان بصورت زیر عمل کرد.

``` DLLink = "data:image/png;base64,[IMAGE BASE64 ENCODE]"; ```

در کد بالا `image/png` مشخص کننده نوع فایل است و بخش `[IMAGE BASE64 ENCODE]` می بایست حاوی محتوای فایل تصویری ما با اینکد `base64` باشد. برای مثل آدرس برای فایل تصویری و متنی میتواند به فرم زیر باشد.

``` data:text/plain;charset=utf-8,Hello%20world!!! data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC ``` البته ناگفته نماند که آقامون کریس کویر
یک پست عالی در مورد این نوع لینک ها نوشته که میتونید بخونید. JS Bin