Я пытаюсь загрузить данные JSON в файл JSON, используя указанный ниже код, но этот код просто дает мне пустой Internet Explorer. Мне нужен код для загрузки файла JSON без возникновения каких-либо событий в пользовательском интерфейсе.
var dataUri = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(JSONData));
var downloadAnchorNode = document.createElement('a');
downloadAnchorNode.setAttribute("href", dataUri);
downloadAnchorNode.setAttribute("download", "CarData.json");
downloadAnchorNode.click();
@CertainPerformance, Вы имеете в виду, что мне не следует использовать Internet Explorer 11?
Нет, это 2018, а не 2013
Не уверен, что вы имеете в виду под «без возникновения какого-либо события». Большинство браузеров (даже современные) покажут диалоговое окно с вопросом, где сохранить файл ...
IE11 и ниже не поддерживает его. developer.mozilla.org/en-US/docs/Web/HTML/Element/…
@CertainPerformance, когда я устанавливаю Microsoft Edge в качестве браузера по умолчанию и устанавливаю точку останова в том же коде, точка останова не срабатывает, но с попаданием точки останова в Internet Explorer 11. В Google Chrome моя страница даже не отображается. Я использую Visual Studio как IDE.
@Mike McCaughan, я имел в виду, что я должен выполнить код, не вызывая никаких событий, таких как нажатие кнопки, в частности, для выполнения этой части кода
Вы даже не вставляете якорь в DOM, чтобы по нему щелкнули.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы получаете пустую страницу, потому что вы не вставляете узел привязки в DOM. Рассмотрим следующий фрагмент. Даже если вы удалите атрибут download, вы попадете на страницу с данными JSON.
var JSONData = {
foo: "bar"
};
var dataUri = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(JSONData));
var downloadAnchorNode = document.createElement('a');
downloadAnchorNode.innerHTML = "Click";
downloadAnchorNode.setAttribute("href", dataUri);
downloadAnchorNode.setAttribute("download", "CarData.json");
document.body.appendChild(downloadAnchorNode);
downloadAnchorNode.click();Вот он без download:
var JSONData = {
foo: "bar"
};
var dataUri = "data:text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(JSONData));
var downloadAnchorNode = document.createElement('a');
downloadAnchorNode.innerHTML = "Click";
downloadAnchorNode.setAttribute("href", dataUri);
document.body.appendChild(downloadAnchorNode);
downloadAnchorNode.click();Кроме того, как указывали другие, IE не поддерживает атрибут download.
Спасибо за такой замечательный ответ. У меня есть еще один вопрос, например, если у меня есть несколько js-объектов, таких как [0] [object], [1] [object], каков должен быть подход для записи таких js-объектов в файл JSON?
just gives me a blank internet explorerЕсли вы занимаетесь веб-разработкой, постарайтесь не использовать устаревший устаревший браузер.