js document.location.href执行完url之后才之后后续的功能

怎让document.location.href中的方法执行完之后才继续执行后面的方法呢?我现在做的是一个导出excel,在点击导出的时候显示一个遮罩层,执行完之后隐藏。... 怎让document.location.href中的方法执行完之后才继续执行后面的方法呢?
我现在做的是一个导出excel,在点击导出的时候显示一个遮罩层,执行完之后隐藏。。
展开
 我来答
飲鴆_止渴
推荐于2017-09-21 · TA获得超过1232个赞
知道小有建树答主
回答量:400
采纳率:0%
帮助的人:540万
展开全部
document.location.href

它的作用 是将当前页面进行跳转 既然进行跳转了 那么就是马上加载新页面 后面的代码自然不能执行了 完全没办法执行后续代码。

但根据阁下所言 显然是想进入新页面然后下载一个excel文件 那么我可以提供以下几种思路方法供你选择:

  1. 用COOKIE,在执行页面跳转前 设置COOKIE 在跳转到新页面后 在新页面执行COOKIE检测 检测到后就执行你要的遮罩层代码 然后进行下载 当然执行完后还要把COOKIE销毁 避免重复

  2. 打开新页面 用JS打开一个新页面 这样就不会影响到当前页面后面的代码

  3. 使用隐藏框架,即Iframe 用JS将它的链接修改为你要导出的那个页面 有文件下载自然会下载 而且看起来比较友好 推荐这一种方法

阁下可以先考虑一下这些思路 觉得某一种可行后 再想如何写代码 若中途有什么疑问 再行追问

更多追问追答
追问
  现在的问题是他会执行之后的代码。
mk.show();

document.location.href="excelExportByTalksDay.action“;
mk.hide();
他执行玩show方法之后执行链接,然后直接就执行了hide方法。。但是下载Excel的窗口还没有出来。。
追答

我上面已经给你说了 你如此根本不可能执行后面的代码 因为

document.location.href="excelExportByTalksDay.action“;

这一句执行就是将此页面新加载 后面的代码都不会执行,需要执行后面的代码 我前面已经给你说过 有那三种方法。

我看你的想法分明是新打开一个下载页面 当前页面也不被刷新 那么显然不能用document.location.href了,可以用新打开窗口或隐藏iframe的方法,这两者你选其一。你确定用哪一种方法后 我再告诉你后面怎么弄

小李飞贼
2014-10-20 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:0%
帮助的人:111万
展开全部
执行 document.location.href后页面就重定向了,除非你创建一个iframe,然后用document.getElementById("ifrmae的id").src="......"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敛梦槐02u
2019-04-29
知道答主
回答量:2
采纳率:0%
帮助的人:1629
展开全部
大佬,你的document.location.href
我现在做的是一个导出excel,在点击导出的时候显示一个遮罩层,执行完之后隐藏。。
这个问题怎么解决的啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式