Кнопка загрузки не работает в Internet Explorer - PullRequest
0 голосов
/ 21 июня 2019

Я работаю над тимелистом, и в моем коде у меня есть кнопка загрузки, которая запускает функцию javascript. Кнопка хорошо работает в Chrome, но не в Internet Explorer.

Javascript код:

function Download(containerid) {
        var fileName =  'tags.txt';
            var elHtml = document.getElementById(containerid).innerHTML;
            var link = document.createElement('a');
            mimeType = 'text/html' || 'text/plain';
            link.setAttribute('download', 'ApiResponse.txt');
            link.setAttribute('href', 'data:' + mimeType + ';charset=utf-8,' + encodeURIComponent(elHtml));
            link.click(); 
        }

HTML откуда он вызывается:

<div class="tooltipp">
    <img onclick="Download('responseMessageEndpoint')"
    style="width: 20px; height: 20px;" th:src="@{css/download.jpg}" />
    <span class="tooltiptextt">Download</span>
</div>

Из того, что я гуглил, download.createElement('a') не поддерживается IE. Но я не могу найти хороший обходной путь.

Заранее спасибо!

1 Ответ

0 голосов
/ 24 июня 2019

Браузер IE не поддерживает Атрибут загрузки .Вы можете попробовать использовать метод msSaveOrOpenBlob для загрузки файла в браузере IE.

Попробуйте использовать следующий код:

<script>
    function Download(containerid) {
        var returnedData = document.getElementById(containerid).innerHTML;
        var filename = "hello.txt";
        var BOM = "\uFEFF"; 

        if (navigator.msSaveBlob) {                // ie block
            console.log("found msSaveBlob function - is't IE")
            var blobObject = new Blob([BOM + returnedData], { type: ' type: "text/plain;charset=utf-8"' });
            window.navigator.msSaveOrOpenBlob(blobObject, "hello.txt");
        }
        else {                                     // non-ie block
            console.log("not found msSaveBlob function - is't not IE")
            var a = window.document.createElement('a');
            a.setAttribute('href', 'data:text/plain; charset=utf-8,' + encodeURIComponent(BOM + returnedData));
            a.setAttribute('download', 'hello.txt');
            a.click();
        }
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...