js window.open() ie8不适配
时间: 2023-12-17 08:04:58 浏览: 147
在 IE8 中,`window.open()` 方法存在一些兼容性问题,可能会导致打开的窗口无法正常显示。
解决方法可以尝试使用以下两种方式之一:
1. 使用标准的 HTML 超链接 `<a>` 标签来打开一个新窗口。
```
<a href="http://www.example.com" target="_blank">打开新窗口</a>
```
2. 使用 `window.showModalDialog()` 方法来打开一个模态对话框窗口。
```
window.showModalDialog("http://www.example.com", "窗口标题", "dialogWidth:600px; dialogHeight:400px");
```
注意:`window.showModalDialog()` 方法在现代浏览器中已不被支持,因此不建议长期使用。如果你的应用程序需要支持多个浏览器版本,建议使用第一种方法。
相关问题
5 js下载pdf文件下载至安卓手机端和苹果手机端
在安卓和苹果手机端,你可以使用以下代码在H5页面中下载PDF文件并保存至手机本地:
```
function downloadPDF() {
var url = "https://example.com/example.pdf"; // PDF文件的下载链接
var filename = "example.pdf"; // PDF文件的文件名
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = function() {
if (this.status === 200) {
var blob = new Blob([this.response], {type: "application/pdf"});
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, filename); // IE浏览器下载
} else {
var downloadUrl = URL.createObjectURL(blob);
var link = document.createElement("a");
link.href = downloadUrl;
link.download = filename;
link.style.display = "none";
document.body.appendChild(link);
link.click();
setTimeout(function() {
document.body.removeChild(link);
window.URL.revokeObjectURL(downloadUrl);
}, 100);
}
}
};
xhr.send();
}
```
在上述代码中,我们首先定义了要下载的PDF文件的下载链接和文件名,然后通过XMLHttpRequest对象发送GET请求获取PDF文件的二进制数据。在获取到二进制数据后,我们将其封装成一个Blob对象,并通过URL.createObjectURL()方法生成一个下载链接,最后创建一个a标签并模拟点击以启动下载。如果是IE浏览器,我们则通过window.navigator.msSaveOrOpenBlob()方法直接下载。
需要注意的是,在不同的手机浏览器中,下载PDF文件的方式可能略有不同,具体可以根据浏览器类型进行适配。同时,在下载完成后,需要将下载链接从浏览器中释放,避免占用浏览器内存。上述代码中,我们通过setTimeout()函数在下载完成后延迟100ms再释放下载链接,以确保文件已经下载完成。
阅读全文