3

I have this code in a button:

var csvContent = "data:text/csv;charset=utf-8,";
csvContent += myCSVcontent;

var encodedUri = encodeURI(csvContent);
window.open(encodedUri);

This works perfectly in Chrome, Safari, and Firefox.
- But not IE8 - I need Internet Explorer 8 compatibility.

When I click the button that calls the code above it downloads the .csv file to my computer.
When I click the button in IE8 though, it opens a new IE8 window with all the csv contents in the address bar and does not download (or ask to download) anything.

Unfortunately, I have to have IE8 compatibility. How can I make this work?

Edit: I must avoid any additional calls to the server. Everything needs to happen client side. This is currently working in all browsers except IE8 (and possibly IE9).

Edit2: When I change the last line to "document.location.href= encodedUri;" it will still work on all other browsers but in IE8 when I click the button I get an error window that says "The data area passed to a system call is too small." Any idea what that is telling me?

2

1 Answer 1

0

"data:text/csv;" is HTML5 so it will not work for IE8, i'm able to solve this using ActivexObject, but it's writing the file to user's desktop and no popup

var csv = new ActiveXObject("scripting.FileSystemObject");
var fLoc = csv.CreateTextFile(fileName);
fLoc.WriteLine(csvData);
fLoc.close();
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.