js window.open(url)为啥会自动下载文件,而不是打开文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js window.open(url)为啥会自动下载文件,而不是打开文件?相关的知识,希望对你有一定的参考价值。

导出功能,导出后调用window.open打开导出的excel文件,刚开始打开报错,404和乱码,修改好了后window.open就变了,成了自动下载文件,不是打开页面了,请问哪些情况会导致发送这种事??

wendow.open如果里面放入的是文件,肯定是会下载文件的。解决方法如下:

1、首先新建一个html页面,命名为test.html。

2、然后window.pen()方法的参数可以为任意的网址,默认情况下,是在新的浏览器窗口打开链接地址。下面代码实现了点击按钮,在新窗口打开百度网站的首页。

3、window.pen()方法第一个参数是网址,第二个参数是打开方式设置,主要有以下几种:_blank :在新窗口打开链接。_parent :在父框架窗口打开链接。_self :在当前的窗口打开链接。_top : 在框架窗口的最上一个窗口打开链接。

4、window.open()方法第三个参数主要用于设置窗口的属性,以固定的宽度和高度窗口打开链接。

5、最后windw.open()方法不仅可以在js函数内使用,还可以直接在html标签上由事件调用,下面代码在button标签内使用onclick点击事件调用window.open()方法。

参考技术A wendow.open如果里面放入的是文件,你肯定是会下载文件的。如果你想打开文件,另想办法吧。追问

以前都能打开,被我在web.xml中添加了点东西后才变成这样的,但是我后来xml内容复原了还是下载

本回答被提问者采纳

js操作BOM

        //window.open(url, target);
        //window.close();

        //在当前窗口打开,可后退
        //原理:自动使用当前窗口的name
        HTML:<a href="url" target="_self"></a>
        js:open(url, '_self');

        //在当前窗口打开,禁止后退
        //原理:用新url替换当前history中的url
        js:location.replace(新url);

        //在新窗口打开,可打开多个
        //原理:不指定窗口名,每打开一个窗口,浏览器会自动随机生成内部窗口名
        HTML:<a href="url" target="_blank"></a>
        js:open(url, '_blank');

        //在新窗口打开,只能打开一个
        //原理:自定义窗口名,这个名字在内存中只能出现一次,一个名字对应一个窗口,后来打开的会覆盖先打开的窗口
        HTML:<a href="url" target="自定义窗口名"></a>
        js:open(url, '自定义窗口名');

        //history三种操作:前进、后退、刷新
        //前进:history.go(1);
        //后退:history.go(-1);history.go(-2);
        //刷新:history.go(0);

        //location属性
        //.href:获取或设置完整的url地址
        //.protocol:协议
        //.host:主机名+端口号
        //.hostname:主机名
        //.port:端口号
        //.pathname:相对路径
        //.search:查询字符串参数
        //.hash:锚点地址

        //location方法
        //在当前窗口打开,可后退
            //location = url;
        //在当前窗口打开,禁止后退
            //location.replace(新url);
        //刷新
            //优先从缓存中获取资源,若缓存中没有或过期,才从服务器获取资源
            //F5
            //history.go(0);
            //location.reload();

            //无论缓存中有没有资源,都强制从服务器获取资源
            //location.reload(true);

以上是关于js window.open(url)为啥会自动下载文件,而不是打开文件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥window.location.href无效,页面不跳转

window.open打开一个新空白页面,不会自动刷新解决方案

js操作BOM

js打开新窗口并且不被拦截

js下载图片

获取WINDOW.OPEN url js中的get取值