javascript - 功能 onclick javascript 在 Microsoft Edge 中不起作用
问题描述
我已经完成了在我们的网站上下载 pdf 的 onclick 功能。除了这个 ajax 消息(主线程上的同步 XMLHttpRequest 已被弃用,因为它对最终用户的体验产生不利影响,它在 Chrome 和 Mozilla 中一切正常。)但是当我在 Microsoft Edge 中单击那里时,它不起作用。谁能帮我?我的代码如下。
<script>
function download_datasheet(uri, name) {
var modal = document.getElementById('myModal');
var span = document.getElementsByClassName("close")[0];
var nome;
nome = name + ".pdf";
modal = document.getElementById('myModal');
modal_content = document.getElementsByClassName("modal_texto")[0];
lang = window.location.href;
lang = lang.split("/");
console.log(lang[1]);
if(lang[1].includes("pt-pt"))
modal_content.innerHTML = "<table border=\"0\"><tr><td style=\"width:80px; background-color:white\"><img src=\"/sites/default/files/Imagens_tecit/Tecit/wait2.gif\" alt=\"wait\"></td><td style=\"background-color:white; color:#5cb8e5; font-size:20px;\"><p class=\"descricao\">Loading...</p></td></tr></table>"
else modal_content.innerHTML = "<table border=\"0\"><tr><td style=\"width:80px; background-color:white\"><img src=\"/sites/default/files/Imagens_tecit/Tecit/wait2.gif\" alt=\"wait\"></td><td style=\"background-color:white; color:#5cb8e5; font-size:20px;\"><p class=\"descricao\">Loading...</p></td></tr></table>"
modal.style.display = "block";
var HttpClient = function() {
this.get = function(aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function() {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest);
}
console.log(aUrl);
anHttpRequest.open( "GET", aUrl, true );
XMLHttpRequest.withCredentials = false;
anHttpRequest.send( null );
anHttpRequest.responseType = "blob";
}
}
var client = new HttpClient();
function eei_terminado(ficheiro){
var blob = new Blob([ficheiro.response]);
var a = document.createElement("a");
a.style = "display: none";
document.body.appendChild(a);
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = nome;
a.click();
window.URL.revokeObjectURL(url);
modal.style.display = "none";
}
client.get(uri, function(response) {
eei_terminado(response);
});
}
</script>
谢谢!
解决方案
推荐阅读
- docker - 从外部容器访问数据
- c++ - 如何使用 C++ 中的文本文件中的私有成员初始化对象
- swift - 选择 UITextField 文本时隐藏选项菜单
- java - 接口,所有方法都必须是抽象的,但是一个呢?
- windows - 如何在 Windows 上自动将所有 .dll 依赖项复制到 .exe 文件夹中?
- java - 为什么这个 do-while 语句打印 20?
- node.js - Node JS - 如何等到Google Cloud Storage Bucket上存在文件,然后下载文件
- css - Bootstrap 4 - 如何正确居中 Div(表单)?
- python - pandas Series.map() 的内部实现是什么?
- go - 为什么要自动构建/安装更新所需的软件包?