【问题标题】:Can I get setTimeOut() executed after page redirection? [duplicate]我可以在页面重定向后执行 setTimeOut() 吗? [复制]
【发布时间】:2016-07-29 11:58:20
【问题描述】:

为什么不重复:以前的帖子中没有回答问题。

我有一个删除链接,点击它会触发一个包含按钮的弹出窗口。当我单击该按钮时,页面(在弹出窗口内)被重定向到一个新的内部页面。我想要实现的是在重定向发生后 1 秒后弹出窗口应该关闭。我在单击按钮时应用了该功能,该功能仅在“弹出重定向”之前可用。

    $('.page-user-cancel .btn').click(function(e) {
    window.onunload = refreshParent;
    setTimeout( function(){
        function refreshParent() {
        window.opener.location.reload();
        window.close();
        }
    }  , 1000 );
}); 

如果我不清楚,请发表评论。英语不是我的母语。

编辑

如果不可行,是否可以在新页面上的div(重定向后)加载时触发该功能?

更新

这不起作用:

var dival = $('.inside .alert').length;
if (dival > 0){
    window.onunload = refreshParent;
    function refreshParent() {
        window.opener.location.reload();
        window.close();
        }
}
else{}

刷新后才有效。

搞定了:必须删除 refreshParent 的函数调用。可能不是最佳做法,但它正在以这种方式工作。

【问题讨论】:

  • 最好是让重定向页面在弹出窗口中自行关闭,而不是尝试通过父级关闭。您可以通过window.close() 执行此操作
  • 不知何故我无权访问新页面,url动态变化。

标签: javascript jquery redirect settimeout


【解决方案1】:

第一部分是不可能的,因为重新加载页面不会使上一页的JavaScript保持运行。

第二部分更好。是的,您可以处理页面加载:

$( document ).ready(function() {
  // Check your div here
});

【讨论】:

  • 我之前尝试过,但它在不考虑超时功能的情况下执行。
  • 如何检查我的 div?我读到我们不能在 div 元素上使用 load()。
  • $('div#id-of-div').length > 0 如果div 存在
  • 谢谢,我的第一个用户测试通过了,进入下一个。 :)
猜你喜欢
  • 1970-01-01
  • 2011-08-03
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 2011-02-13
相关资源
最近更新 更多