如何在一个JavaScript函数中调用多个window.location.href?

时间:2019-06-06 23:05:35

标签: javascript window.location

我正在尝试使用一个JavaScript函数解析多个href。当我取消标记警报时,它可以正常工作。我假设它与计时有关,但我不确定做到这一点的最佳方法。

我已经尝试过使用sleep命令来添加某种暂停,但这并没有达到我的预期。

function pName(selectObject) {
    var x = selectObject.value;
    var y = selectObject.value.length;
    if (x === undefined) {
        x = 97;
    }
    str = '1st page here=' + "'" + x + "'";
    //alert(str);
    window.location.href = str;

    if (y == 0) {
        nxt = '2nd page - 1';
    } else {
        nxt = '2nd page - 2';
    }
    //alert(nxt);
    window.location.href = nxt;
}

2 个答案:

答案 0 :(得分:2)

似乎您正在尝试将window.location.href设置为先进入str,然后再进入nxt。导航到页面str后,JavaScript将停止执行,并且您将无法随后 触发重定向到nxt的操作;您无法让一个页面一个接一个地导航到两个不同的页面。

显而易见的解决方案是直接从第1页直接重定向到第3页(nxt),而完全忽略/绕过第2页(str)。但是,如果您明确希望用户访问两个页面,则需要在第2页(str自身上设置自动重定向才能进行您nxt

这可以通过在第2页(window.location.href = nxt)上简单地设置str来完成,尽管要记住,您实际上需要转移设置nxt的逻辑移至第2页(str),而不是将其放在第一页上。

答案 1 :(得分:0)

我能够使用onInput并将其作为自己的第二个函数来处理。

onchange="pName(this);sendnew();return false;" onInput="sData(this);sendnew();return false;"

  function pName(selectObject) {
  var x = selectObject.value;
    if (x === undefined) {
  x = 97;
}
  str = 'Command 1'+ "'" + x + "'" ;
  //alert(str);
  window.location.href = str;
}
function sData (selectObject) {
  var y = selectObject.value.length;    
    if (y == 0) {
    window.location.href = 'Command 2 - B' ;
  } else {
    window.location.href = 'Command 2 - B' ;
    //alert(str);
};
}