title: window.btoa() not working in IE
body: <p>I'm currently trying to create export data to excel from the javascript below.
  When testing this code in IE8, I get the following error:</p>
  
  <blockquote>
    <p>"object doesn't support this property or method"</p>
  </blockquote>
  
  <p>at the line:</p>
  
  <pre><code>return window.btoa(unescape(encodeURIComponent(s)))
  </code></pre>
  
  <p>Can you please tell me how to fix this in IE? It's working in the other browsers. Thank you very much.</p>
  
  <pre><code>var tableToExcel = (function () {
      var uri = 'data:application/vnd.ms-excel;base64,',
          template = '&lt;html xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"&gt;&lt;head&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;&lt;x:ExcelWorkbook&gt;&lt;x:ExcelWorksheets&gt;&lt;x:ExcelWorksheet&gt;&lt;x:Name&gt;{worksheet}&lt;/x:Name&gt;&lt;x:WorksheetOptions&gt;&lt;x:DisplayGridlines/&gt;&lt;/x:WorksheetOptions&gt;&lt;/x:ExcelWorksheet&gt;&lt;/x:ExcelWorksheets&gt;&lt;/x:ExcelWorkbook&gt;&lt;/xml&gt;&lt;![endif]--&gt;&lt;/head&gt;&lt;body&gt;&lt;table&gt;{table}&lt;/table&gt;&lt;/body&gt;&lt;/html&gt;',
          base64 = function (s) {
              return window.btoa(unescape(encodeURIComponent(s)))
          }, 
          format = function (s, c) {
              return s.replace(/{(\w+)}/g, function (m, p) {
                  return c[p];
              })
          }
      return function (table, name) {
          if (!table.nodeType) table = document.getElementById('file')
          var ctx = {
              worksheet: name || 'Worksheet',
              table: table.innerHTML
          }
          window.location.href = uri + base64(format(template, ctx))
      }
  })()
  </code></pre>