想要使用location.reload()重新加载我的页面;在window.open()完成其执行之后

时间:2017-12-12 08:10:32

标签: javascript jquery

我正在尝试在window.open(' test.com')完成处理后重新加载我的网页。我试过以下代码

try {
        window.open(scriptURL); //scriptURl is my which i want to open in new window.
        setTimeout(function () {
            location.reload(); //It's you code
        }, 4000);

    } catch (e) {
        nlapiLogExecution('error', 'Error requesting SLE', e.getCode() + ' - ' + e.getDetails());
        alert('error: ' + e.message);
        return;
    }

一旦window.open()完成其处理然后我想重新加载我的页面,location.reload()依赖于window.open()。上面的代码工作正常。但问题是,如果window.open()花费超过4秒,它就不能正常工作。 setTimeout不是可行的解决方案,因为我们使用的是硬编码时间。所以任何人都可以帮助我,并提供最佳解决方案。

2 个答案:

答案 0 :(得分:0)

您可以通过多种方式检查窗口是否完成加载。

JS

object.addEventListener("load", myScript);

的jQuery

$(window).on('load', function () {

 });

答案 1 :(得分:0)

您可以在新打开的窗口中使用onload功能:

 var openWindow = window.open(scriptURL); //scriptURl is my which i want to 
 openWindow.onload = function(){
    location.reload(); //or perhaps openWindow.location.reload(); need to check
 }